📜  python 获取类的属性 - Python (1)

📅  最后修改于: 2023-12-03 15:04:18.507000             🧑  作者: Mango

Python 获取类的属性

在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']

从上面的输出中,你会发现我们不仅获得了类的属性nameage,还获得了一些特殊的属性和方法。

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}

从上面的输出中,你会发现我们只获得了类的属性nameage,而没有获得任何特殊的属性或方法。

结论

dir()函数和vars()函数都可以用来获取类的属性。dir()函数会返回类的所有可用属性,而vars()函数会返回类的属性和它们的值。理解这些函数的不同之处很重要,因为这将有助于你选择使用哪个函数来获得你需要的类的属性。