-
反射呢,就是动态的给对象添加方法或者属性,将变量或者方法动态写入内存。
Python 的反射函数有四个,分别为:
setattr() # 设置属性
delattr() # 删除属性
hasattr() # 判断是否有属性或者方法
getattr() # 获取属性。 -
example:
如果一类中有多个函数,需要根据用户输入动态的调用相应的方法。此时就可以用反射来完成。也可以来写一堆的if elif esle 来完成。
看代码:
class Goods(object):
def price(self):
print("商品价格是:%s"%50)
def coloer(self):
print("颜色")
def count(self):
print("数量")
def address(self):
print("产地")
select = input("请输入你的选项: ").strip()
if hasattr(Goods,select):
print("hello world")
func = getattr(Goods,select)
func(Goods)