python基础知识之面向对象进阶 反射
2021/11/17 9:09:54
本文主要是介绍python基础知识之面向对象进阶 反射,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
反射:通过字符串获取变量 有四种方法 hasattr getattr (setattr delattr)不是那么重要
反射之hasattr 方法判断该类是否存在对应字符串变量
反射之getattr与hasattr 夫妻档 用hasatrr判断是否存在 在用getattr反射获取值
# class A: age=12 def func(self): print("in func") @classmethod #类方法 def func1(cls): print("in func1") @staticmethod #类方法:静态方法 def func2(): print("in func2") #反射对象属性 a=A() a.name="alex" #给对象添加属性 也可以在类里面自定义属性 一个道理 if hasattr(a,"name"):# 判断是否存在那么这个属性 print(getattr(a,"name")) # 反射对象方法 if hasattr(a,"func"): getattr(a,"func")() # 反射类属性 if hasattr(A ,"age"): print(getattr(A, "age")) # 反射类方法 类方法:加有classmethod staticmethod装饰器的方法 if hasattr(A,"func1")and hasattr(A,"func2"): getattr(A,"func1")() # getattr(A, "func2")() # 反射模块 import MyModle #自定义模块 print(getattr(MyModle,"year")) #反射模块属性 getattr(MyModle,"myfunc")() #反射模块方法 # 反射自己类中的方法 属性 age=12 def myage(): print(" int myage") import sys print(getattr(sys.modules[__name__],"age")) getattr(sys.modules[__name__],"myage") # 反射内置模块 import time print(getattr(time,"time")()) print(getattr(time,"asctime")()) print(getattr(time,"strftime")("%Y-%m-%d %H-%M-%S"))#内置有参数一样传参 #反射模块中 类的属性 方法 import MyModle print(getattr(getattr(MyModle,"C")(),"modeke")) getattr(getattr(MyModle,"C")(),"myC")()View Code
这篇关于python基础知识之面向对象进阶 反射的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-03用FastAPI掌握Python异步IO:轻松实现高并发网络请求处理
- 2025-01-02封装学习:Python面向对象编程基础教程
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型