#本模块反射总结:
细节很重要
import sys
class A:
def __init__(self,name):
self.name = name
self.list_func= [('来个哦','foo'),('方可','func')]
def foo(self):
print(666)
def func(self):
print(555)
def inner(self):
pass
a = A('大黄')
print(a.list_func[0][1])
for i,j in enumerate(a.list_func,1):
print(i,j[0])
if hasattr(sys.modules[__name__].a,a.list_func[0][1]):#判断 在不在
print(1111)
ret = getattr(sys.modules[__name__].a,a.list_func[0][1])#得到的是foo 这个函数的函数地址
print(ret)
ret()
反射总结:sys.modules[__name__] 反射对象与字符串的关系 要能够点得到 sys.modules[__name__]所以后边点a
其它反射也是一样的