首页 > 编程语言 > 详细

python-反射

时间:2020-05-12 18:06:33      阅读:42      评论:0      收藏:0      [点我收藏+]
根据字符串类型
1.反射对象的 实例变量
2.反射类的 静态变量/绑定方法/其他方法
3.模块中的所有变量
被导入的所有模块


# 1.反射对象的 实例变量/绑定方法
# 2.反射类的 静态变量/其他方法
# 3.模块中的 所有变量
# 被导入的模块
# 当前执行的py文件 - 脚本

class A:
    Role = 治疗

    def __init__(self):
        self.name = alex
        self.age = 84

    def func(self):
        print(wahaha)
        return 666


a = A()
print(getattr(a, name))  # 反射对象的实例变量
print(getattr(a, func)())  # 反射对象的绑定方法
print(getattr(A, Role))
import a  # 引用模块中的任意的变量

print(getattr(a, sww), a.sww)
getattr(a, sww)()
print(getattr(a, lst), a.lst)
print(getattr(a, dic), a.dic)
print(getattr(a, we), a.we)
import sys  # 反射本模块中的名字

cat = 小a
dog = 小b


def pig():
    print(小p)


print(getattr(sys.modules[__main__], cat))
print(getattr(sys.modules[__main__], dog))
getattr(sys.modules[__main__], pig)()

 

进阶: 

hasattr(a, ‘func‘):  # 判断某个类/对象能不能反射.return True/False
callable(obj) 判断对象是否可调用 return True.False
 
class A:
    Role = 治疗

    def __init__(self):
        self.name = alex
        self.age = 84

    def func(self):
        print(wahaha)
        return 666


a = A()
print(hasattr(a, sex))
print(hasattr(a, age))
print(hasattr(a, func))
if hasattr(a, func):  # 判断某个类/对象能不能反射.return True/False
    # callable(obj) 判断对象是否可调用 return True.False
    if callable(getattr(a, func)):
        getattr(a, func)()

 

python-反射

原文:https://www.cnblogs.com/qiuyubai/p/12877527.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!