python 3学習の反射
1154 ワード
1、
( / / ),
#hasattr( ,' '): , “ ” ;
True False
#getattr( ,' '): , “ ”
#s3.py
p1():
()
p2():
()
p3():
()
#s2.py
import s3
inp = input("Please input function:")
if inp == "p1":
s3.p1()
elif inp == "p2":
s3.p2()
elif inp == "p3":
s3.p3()
## inp 100 , ,
if hasattr(s3,inp): # inp s3 , True, False
# getattr , “ ”
f = getattr(s3,inp) # s3 inp , f
f() # inp
2
同様に、100個のモジュールの各モジュールに100のメンバーがある場合
obj = __import__(" ") # ,
func = getattr(obj," 1") #
3モジュールが同じディレクトリにない場合
obj = __import__(" ."+" ",fromlist=True) # , fromlist , " ", “.”
注意:反射はwebフレームワークで多く使われており、urlを解析することで対応機能を実行します.