反射:通过字符串的形式导入模块,通过字符串的形式去模块中寻找指定函数、字段、全局变量等
根据用户输入的内容导入模块
由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
class
Foo(
object
):
def
__init__(
self
):
self
.name
=
'wupeiqi'
def
func(
self
):
return
'func'
obj
=
Foo()
# #### 检查是否含有成员 ####
hasattr
(obj,
'name'
)
hasattr
(obj,
'func'
)
# #### 获取成员 ####
getattr
(obj,
'name'
)
getattr
(obj,
'func'
)
# #### 设置成员 ####
setattr
(obj,
'age'
,
18
)
setattr
(obj,
'show'
,
lambda
num: num
+
1
)
# #### 删除成员 ####
delattr
(obj,
'name'
)
delattr
(obj,
'func'
)
===============================
from lib import account
#模块名/函数名
#account/login
url = input('请输入URl:')
target_module, target_func = url.split('/')
m = __import__("lib" +targrt_module, fromlist=True)
if hasattr(account,inp):
target_func = getattr(account,inp)
r = target_func()
print(r)
else:
print('404')