反射使得程序具有在运行时动态修改自己的结构和行为的能力。比如导入模块、调用函数等等,这些都是python的反射机制,是一种编程方法、设计模式的体现,凝聚了高内聚、松耦合的编程思想,不能简单的用执行字符串来代替。
python的四个重要内置函数:getattr、hasattr、delattr和setattr较为全面的实现了基于字符串的反射机制。他们都是对内存内的模块进行操作,并不会对源文件进行修改。
内建函数:
getattr(object, name[, default])
参数:
- object – 对象。
- name – 字符串,对象属性。
- default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
class A(object):
bar = 1
def my_function(name):
print('hell0 : ', name)
a = A()
# 属性部分
print(getattr