python getattr和hasattr的使用

python getattr和hasattr的使用,第1张

python官方定义

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()

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/568795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存