python 中 的反射

  • 反射呢,就是动态的给对象添加方法或者属性,将变量或者方法动态写入内存。
    Python 的反射函数有四个,分别为:
    setattr() # 设置属性
    delattr() # 删除属性
    hasattr() # 判断是否有属性或者方法
    getattr() # 获取属性。

  • example:
    如果一类中有多个函数,需要根据用户输入动态的调用相应的方法。此时就可以用反射来完成。也可以来写一堆的if elif esle 来完成。
    看代码:

class  Goods(object):

    def price(self):
        print("商品价格是:%s"%50)

    def coloer(self):
        print("颜色")

    def count(self):
        print("数量")

    def address(self):
        print("产地")

select = input("请输入你的选项: ").strip()

if hasattr(Goods,select):
    print("hello world")
    func = getattr(Goods,select)
    func(Goods)

发布了127 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_44224529/article/details/103693402