📜  python 显示对象属性 - Python (1)

📅  最后修改于: 2023-12-03 14:46:16.108000             🧑  作者: Mango

Python 显示对象属性

在 Python 中,可以通过访问对象的属性来获取其相关信息。本文将介绍如何显示对象的属性以及相关知识点。

显示对象属性的方法
dir() 函数

dir() 函数可以显示任何 Python 对象的属性及方法列表。可以使用它来查看对象的所有属性和方法。

class Person:
    age = 20
    def __init__(self, name):
        self.name = name

p = Person('Alice')
print(dir(p))

输出结果为:

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

vars() 函数可以返回包含对象的属性和属性值的字典。可以使用它来查看对象的属性及其对应的值。

class Person:
    age = 20
    def __init__(self, name):
        self.name = name

p = Person('Alice')
print(vars(p))

输出结果为:

{'name': 'Alice'}
相关知识点
实例变量与类变量

在上面的示例中,age 是类变量,name 是实例变量。类变量是在类定义时创建的,并且该类的所有实例都可以访问它。实例变量是在实例化类时创建的,每个实例都有自己的副本。

属性访问器方法

在 Python 中,有两种方法可以通过方法来访问实例变量:@propertysetter 方法。@property 装饰器用于将方法转换为属性,而 setter 方法用于设置属性的值。

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        print('Getting name...')
        return self._name

    @name.setter
    def name(self, value):
        print('Setting name...')
        self._name = value

p = Person('Alice')
print(p.name)
p.name = 'Bob'
print(p.name)

输出结果为:

Getting name...
Alice
Setting name...
Getting name...
Bob
dir() 和 dict() 方法

Python 中的每个对象都有一个 __dir__() 方法和一个 __dict__() 方法。__dir__() 方法返回包含对象中定义的属性和方法的列表,而 __dict__() 方法返回包含对象中定义的属性及其值的字典。

class Person:
    age = 20
    def __init__(self, name):
        self.name = name

p = Person('Alice')
print(p.__dir__())
print(p.__dict__)

输出结果为:

['__repr__', '__hash__', '__str__', '__getattribute__', '__setattr__', '__delattr__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__new__', '__init__', 'age', '__dict__', '__weakref__', 'name']
{'name': 'Alice'}
总结

Python 中可以通过 dir()vars() 函数来显示对象的属性和属性值。此外,了解实例变量和类变量、@propertysetter 方法、__dir__()__dict__() 方法等相关知识点对深入理解 Python 对象的属性和方法非常有帮助。