📅  最后修改于: 2023-12-03 15:04:18.507000             🧑  作者: Mango
在Python中,获取类的属性可以使用内置函数dir()
和函数vars()
。在本文中,我们将介绍这些函数以及如何使用它们来获取类的属性。
dir()
函数dir()
函数返回一个包含对象所有可用属性和方法名称的列表。这包括类的属性、方法和父类的属性、方法。
下面的代码演示了如何使用dir()
函数获取类的属性:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person('John', 30)
print(dir(p))
运行上面的代码将输出以下内容:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name']
从上面的输出中,你会发现我们不仅获得了类的属性name
和age
,还获得了一些特殊的属性和方法。
vars()
函数vars()
函数返回一个给定对象的__dict__属性。在面向对象编程中,每个对象都有一个__dict__属性,它包含了对象的所有属性和它们的值。
下面的代码演示了如何使用vars()
函数获取类的属性:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person('John', 30)
print(vars(p))
运行上面的代码将输出以下内容:
{'name': 'John', 'age': 30}
从上面的输出中,你会发现我们只获得了类的属性name
和age
,而没有获得任何特殊的属性或方法。
dir()
函数和vars()
函数都可以用来获取类的属性。dir()
函数会返回类的所有可用属性,而vars()
函数会返回类的属性和它们的值。理解这些函数的不同之处很重要,因为这将有助于你选择使用哪个函数来获得你需要的类的属性。