Python之路第六天,基础(8)-反射
反射
利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员(函数)。
Python中反射用到的4个内置函数:getattr(),setattr(),hasattr(),delattr()
直接上例子
伪造Web框架的路由系统:
目录结构:
.
├── index.py
└── lib
├── account.py
├── commons.py
└── manager.py
# account.py
def login():
print('炫酷登录页面')
def logout():
print('炫酷退出页面')
# manager.py
def order():
print('炫酷的订单页面')
# common.py
def home():
print('炫酷主页面')
# index.py
def run():
inp = input('请输入URL:')
m, f = inp.split('/')
# import lib.account
obj = __import__("lib."+ m, fromlist=True)
if hasattr(obj, f):
func = getattr(obj, f)
func()
else:
print('404')
if __name__ == '__main__':
run()
运行:
请输入URL:account/login
炫酷登录页面
请输入URL:account/log
404