python_反射——根据字符串获取模块中的属性
2024-09-22 12:27:37
1.获取当前模块中的属性
class Person(object): def __init__(self,name,age):
self.name = name
self.age = age p = Person('wdc',22) import sys
q = sys.modules[__name__] #获取模块本身,并赋值给q
if hasattr(q,'p'): #查看当前模块下是否有名字叫“p”的属性
print(getattr(q,'p')) #获取当前模块的名字叫“p”的属性
print(p) #打印p和上面做比较
打印输出后发现通过字符串获取的,和直接打印的模块相同。
2.从其他模块导入方法
test_mod.py
def hi():
print('Hi')
test.py
import test_mod #导入其他模块
if hasattr(test_mod, 'hi'): #判断test_mod模块是否有名字为“hi”的方法
f = getattr(test_mod, 'hi') #获去test_mod模块中名字叫“hi”的方法并赋值给f
f() #执行获取的方法 setattr(test_mod,'name','wdc') #为方法添加名字为“name”的属性,并赋值为“wdc”
print(test_mod.name) #打印输出为模块添加的属性
最新文章
- console对象-转
- Java 中 ThreadLocal 内存泄露的实例分析
- Oracle Enterprise Manager打不开的解决方法
- table动态添加删除一行和改变标题
- 尚学堂 JAVA DAY12 概念总结
- linux网络编程学习笔记之五 -----并发机制与线程�
- fitness
- 【贪心】【TOJ4107】【A simple problem】
- memcache 安装教程
- phonegap与H5中的接口对比
- 【ActiveReports 大数据分析报告】用数据分析的手段告诉你,复联4有多火爆?
- Spring RestTemplate get post 请求 携带 headers
- 报错:Maximum call stack size exceeded
- python3+selenium入门16-窗口截图
- J2CACHE 两级缓存框架
- empty 与 remove 的区别
- [学习笔记]树套树 线段树套Splay
- WPF解决按钮上被透明控件遮盖时无法点击问题
- DataGridView使用技巧六:冻结列或行
- js cookie使用