反射

python提供了四个关于反射的四个内置函数分别是:

  • getattr 获取指定字符串名称的对象属性
  • setattr 为对象设置一个对象
  • hasattr 判断对象是否有对应的对象(字符串)
  • delattr 删除指定属性

 

class A:
    sex = ""
    def get_name(self):
        return "get_name方法"

    def get_age(self):
        return "get_age方法"

s = hasattr(A,"get_name") #True 实例和类都可以作用
m = hasattr(A(),"get_name") #True

r = getattr(A(),"get_name")
print(r())  #get_name方法 调用get_name方法
print(getattr(A,"sex"))  #
setattr(A,"sex","") #设置类的属性
print(getattr(A,"sex")) #

delattr(A,"get_name") #删除A类中的属性
print(hasattr(A,"get_name"))  #False

 

通过字符串导入模块

temp = "re"
model = __import__(temp)


def main():
    txt = "hj123uo"
    pattern = model.compile(r"[0-9]+")
    print(model.search(pattern, txt).group())


if __name__ == '__main__':
    main()

 

你可能感兴趣的:(反射)