getattr(object, name[, default])
返回对象命名属性的值。
name 必须是字符串。
如果该字符串是对象的属性之一,则返回该属性的值。
例如, getattr(x, ‘foobar’) 等同于 x.foobar。
如果指定的属性不存在,且提供了 default 值,则返回它,否则触发 AttributeError。
这一句最重要 getattr(x, ‘foobar’) 等同于 x.foobar
hasattr(object, name)
该实参是一个对象和一个字符串。
如果字符串是对象的属性之一的名称,则返回 True,否则返回 False。
(此功能是通过调用 getattr(object, name) 看是否有 AttributeError 异常来实现的。
)
结合hasattr和getattr使用,方法的调用
# lib.commons.py
def login():
print("登陆!")
def logout():
print("页面!")
def home():
print("主页!")
# 运行文件
def run():
inp = input("请输入您想访问页面的url: ").strip()
modules,func=inp.split("/")
# "lib."+modules 连在一起设置fromlist
obj=__import__("lib."+modules,fromlist=True) # 注意fromlist参数
# hasattr 判断是否存在
if hasattr(obj,func):
#func ==》obj.func
func=getattr(obj,func)
# obj.func()
func()
else:
print("404")
if __name__ == '__main__':
run()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)