python查看对象属性(python看属性列表)

1年前 (2023-09-22)阅读157回复0
钱良钗
钱良钗
  • 注册排名10014
  • 经验值0
  • 级别
  • 主题0
  • 回复0
楼主

Python的属性列表(Attribute List)指的是一个对象所具有的所有属性(包括数据属性和函数属性)。这些属性可以通过Python的内置函数dir()来获得。下面是一个简单的例子:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hi(self):
print("Hi, my name is ", self.name)
person = Person("Jack", 22)
print(dir(person))

在上面的代码中,我们定义了一个Person类,它有两个数据属性(name和age)和一个函数属性(say_hi)。我们创建了一个Person对象person,并使用dir()函数来获取它的属性列表。运行上面的代码,可以得到如下输出:

['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name', 'say_hi']

我们可以看到,输出结果中包含了Person类的一些特殊属性(以双下划线开头和结尾的属性),以及我们定义的数据属性(age和name)和函数属性(say_hi)。

不过,属性列表中也会包含一些我们不需要的属性,比如特殊属性和继承而来的属性。如果我们只想获取自己定义的属性列表,可以通过在类定义时使用__slots__属性来限制对象的属性:

class Person:
__slots__ = ["name", "age"]
def __init__(self, name, age):
self.name = name
self.age = age
def say_hi(self):
print("Hi, my name is ", self.name)
person = Person("Jack", 22)
print(dir(person))

这时,dir()函数的输出结果会只包含我们在__slots__属性中列出的属性:

['__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'age', 'name']

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/560.html

0
回帖

python查看对象属性(python看属性列表) 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息