zoukankan      html  css  js  c++  java
  • python中的反射

    反射

    hashttr :判断某个函数或者变量是否存在

    getattr :如果instance对象中有属性name则打印self.name的值,否则打印'not find'

    1.反射模块中的内容

    import a
    import sys
    print(sys.modulse['a'].Alipay)
    print(a.Alipay)
    print(getattr(a,'Alipay'))
    print(getattr(sys.modules['a'],'Alipay'))
    
    1. 反射本文件中的内容

      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')()
      
    2. 反射对象中的属性或者绑定方法

      class Person:
          def __init__(self,name,age):
              self.name = name
              self.age = age
          def qqxing(self):
              print('qqxing')
      alex = Person('alex',83)
      wusir = Person('wusir',74)
      ret = getattr(alex,'name')
      print(ret)
      ret = getattr(wusir,'name')
      print(set)
      ret = getattr(wusir,'qqxing')
      ret()
      
    3. 反射类的静态变量

      class A:
          Role = '治疗'
          def __init__(self):
              pass
      print(getattr(A,'Role'))#调用静态变量的时候需要用类名加上静态名
      
    4. callable #判断对象是否可以被调用,可以返回True,不可以返回False

  • 相关阅读:
    点双连通分量
    CF 839 E-最大团
    线性基
    CF 859 E
    【bzoj1303】[CQOI2009]中位数图
    【bzoj2282】[Sdoi2011]消防
    【bzoj2654]】tree
    【bzoj2600】 [Ioi2011]ricehub
    【bzoj4027】 [HEOI2015]兔子与樱花
    【bzoj3670】 [Noi2014]动物园
  • 原文地址:https://www.cnblogs.com/wang-xing-hao/p/11172720.html
Copyright © 2011-2022 走看看