请稍候,加载中....

类的反射机制

所谓反射是指程序可以访问、检测和修改自身状态和行为的能力

使用此类函数需要注意区分实例属性与类属性

getattr内置函数

getattr函数用来从一个对象获取一个指定名称属性的值

getattr(obj, name)

getattr(obj, name, default)

class A:
    a = 10
    def print(self):
        print(self.a)


a1 = A()
print(getattr(a1, 'a'))
print(getattr(a1, 'print'))
print(getattr(a1, 'show', None))

getattr(a1, 'print')()

setattr内置函数

setattr函数用于给对象指定的属性重新设置值或者添加一个新的属性

class A:
    a = 0
    b = 10
    def show(self):
        print(self.a, self.b)

a1 = A()
a2 = A()
setattr(a1, 'a', 100)
a1.show()
a2.show()
setattr(a1, 'b', 20)
a1.show()
a2.show()

hasattr内置函数

检测对象是否具有某个指定的属性

hasattr("hello", "append")
hasattr([], "append")
hasattr({1, 2, 3}, "add")
hasattr(a1, 'show')

delattr内置函数

用来删除对象指定的属性

delattr(A, 'show')

 


Python学习手册-