python之反射

'''
反射:
    反射指的是通过字符串对 对象的属性进行操作
    - hasattr: 通过"字符串"判断对象的属性或方法是否存在
    - getattr: 通过"字符串"来获取对象的属性或方法
    - setattr: 通过"字符串"来设置对象的属性或方法
    # 设置的方法需要手动传参.
    - delattr: 通过"字符串"来设置对象的属性或方法
'''
class Foo:
    def __init__(self, x, y):
        self.x = x
        self.y = y


def func(self):
    print(self.x)
    print('from func....')


foo_obj = Foo(10, 20)
print(hasattr(foo_obj, 'x'))
setattr(foo_obj, 'func', func)
print(hasattr(foo_obj, 'func'))
# foo_obj.func(foo_obj, 'aaa')
foo_func = getattr(foo_obj,'func')
foo_func(foo_obj)
delattr(foo_obj,'func')
posted @ 2019-11-28 16:45  GhostAnt  阅读(89)  评论(0编辑  收藏  举报