📜  python 类按名称获取属性 - Python (1)

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

Python 类按名称获取属性

在Python中,我们可以通过类的名称来获取类的属性。类的属性是与类关联的变量,它们存储了对象的状态和数据。

使用dir()函数

Python内置的dir()函数可以用于返回类的所有属性列表。它返回一个包含属性名称的列表,包括对象继承的属性。

下面是一个例子:

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

p = Person("Alice", 25)

attributes = dir(p)
print(attributes)

输出结果:

['__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']

在上面的例子中,dir(p)返回了一个包含属性名称的列表。我们可以看到,除了nameage属性外,还有许多其他属性,包括一些特殊方法和内建的属性。

使用vars()函数

另一个获取类属性的方法是使用内置的vars()函数。它返回一个包含对象的属性和对应的值的字典。

下面是一个例子:

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

p = Person("Alice", 25)

attributes = vars(p)
print(attributes)

输出结果:

{'name': 'Alice', 'age': 25}

在上面的例子中,vars(p)返回了一个字典,其中键是属性的名称,值是属性的值。

使用getattr()函数

如果我们知道类的属性名称,可以使用内置的getattr()函数来获取属性的值。getattr()函数接受两个参数:对象和属性名称。

下面是一个例子:

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

p = Person("Alice", 25)

name = getattr(p, 'name')
print(name)

输出结果:

Alice

在上面的例子中,getattr(p, 'name')返回了name属性的值。

如果在对象中不存在指定的属性,getattr()函数还接受一个可选的第三个参数,表示在属性不存在时返回的默认值。

总结

获取类的属性是非常常见的操作,可以通过dir()vars()getattr()等函数来实现。这些函数可以帮助我们了解类的结构和属性的值,从而更好地理解和操作对象。