'''
反射:
反射指的是通过字符串对 对象的属性进行操作
- 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')