Python - 模块内省
2022/2/1 17:44:48
本文主要是介绍Python - 模块内省,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
模块也是一等对象
当前模块内省
globals():
返回一个字典,表示当前的全局符号表。这个符号表始终针对当前模块(对函数或方法来说,是指定义它们的模块,
而不是调用他它们的模块)
# test_02.py gol_num = 3 def a(): print('a') def b(): print('b') def c(): print('c') if __name__ == '__main__': resu = [k_v for k_v in globals().items()] print(resu) # for name in globals().items(): # print(name) error: RuntimeError: dictionary changed size during iteration
输出:
[('__name__', '__main__'), ('__doc__', None), ('__package__', None), ('__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x0000026A265F4880>), ('__spec__', None), ('__annotations__', {}), ('__builtins__', <module 'builtins' (built-in)>), ('__file__', 'E:\\PyProject\\homework\\20220201\\test_02.py'), ('__cached__', None), ('gol_num', 3), ('a', <function a at 0x0000026A26533E20>), ('b', <function b at 0x0000026A2696ED40>), ('c', <function c at 0x0000026A2696EDD0>)]
其他模块
# test_01.py import inspect # 被检查的模块 import test_02 if __name__ == '__main__': # inspect.getmembers(module_name, inspect.isfunction): 注意:第一个参数是模块名称, 第二个参数没有() # name: 函数名字, func: test_02中的函数对象 for name, func in inspect.getmembers(test_02, inspect.isfunction): print(f"name:{name}, func:{func}") # 调用test_02.py 中的函数 func()
out:
name:a, func:<function a at 0x00000220177DF640> a func ran name:b, func:<function b at 0x00000220178870A0> b func ran name:c, func:<function c at 0x0000022017887130> c func ran
这篇关于Python - 模块内省的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程