inspect模块的使用
模块 使用 inspect
2023-09-14 08:59:07 时间
一、介绍
inspect模块主要的四种用处:
1.对是否是模块、框架、函数等进行类型检测
2.获取源码
3.获取类或函数的参数信息
4.解析堆栈
二、使用
只写了2个自己用到的方法,方法太用,https://docs.python.org/3/library/inspect.html,可以看官方文档
#获取python函数参数的名称和默认值,返回一个命名的元组 inspect.getfullargspec(func) #返回调用者堆栈的帧记录列表,返回列表中的每一条为调用者,最后一条为堆栈上最外层的调用者 inspect.stack(context=1)
inspect.stack()的结果会随着调用层数的变化而变化 stack=inspect.stack() print(stack) #[FrameInfo(frame=<frame object at 0x000001F3A7201C88>, # filename='D:/PycharmProjects/flask/flask_demo/app.py', # lineno=34, function='<module>', # code_context=['stack=inspect.stack()\n'], index=0)] def run(): stack=inspect.stack() print(stack) run() # [FrameInfo(frame=<frame object at 0x0000019BD0706CA8>, # filename='D:/PycharmProjects/flask/flask_demo/app.py', # lineno=43, function='run', # code_context=[' stack=inspect.stack()\n'], index=0), # FrameInfo(frame=<frame object at 0x0000019BCE31FA48>, # filename='D:/PycharmProjects/flask/flask_demo/app.py', # lineno=50, function='<module>', code_context=['run()\n'], index=0)] def person(): def run(): stack=inspect.stack() print(stack) return run() person() # [FrameInfo(frame=<frame object at 0x0000017020FCE048>, filename='D:/PycharmProjects/flask/flask_demo/app.py', lineno=58, function='run', code_context=[' stack=inspect.stack()\n'], index=0), # FrameInfo(frame=<frame object at 0x00000170202FB808>, filename='D:/PycharmProjects/flask/flask_demo/app.py', lineno=60, function='person', code_context=[' return run()\n'], index=0), # FrameInfo(frame=<frame object at 0x000001701E06FA38>, filename='D:/PycharmProjects/flask/flask_demo/app.py', lineno=61, function='<module>', code_context=['person()\n'], index=0)]
import inspect def func(name,phone,authcCde="123"): return name,phone,authcCde apiMethod=func args = inspect.getfullargspec(apiMethod).args print(args)
相关文章
- Python日志模块学习,从这里开始...
- 【nodejs原理&源码赏析(4)】深度剖析cluster模块源码与node.js多线程(上)
- 4 ~ express ~ 划分模块开发
- Python库的使用之-Sys模块
- python使用datetime模块计算各种时间间隔的方法
- 使用Python自带模块发送邮件
- ansible使用shell模块在受控机上执行命令(ansible2.9.5)
- nginx模块_使用gdb调试nginx源码
- python模块typing的作用
- python远程登录服务器(paramiko模块安装和使用)
- MUI索引列表自定义----添加热门、最近等多个模块
- Python Django后台管理模板美化:使用django-simpleui模块
- 已解决pip使用阿里云镜像安装第三方模块失败
- Python学习36:使用模块
- 异步网络模块之aiohttp的使用(一)
- BeautifulSoup模块
- Python使用技巧(九):枚举模块enumerate()方法
- Python使用技巧(五):快速解决安装python-lxml模块库报错问题并简单使用
- 10.Python之Ansible自动化运维常用模块
- verilog | 模块与端口
- Nginx 第三方健康检测模块的使用
- 【牛客网刷题系列 之 Verilog快速入门】~ 多功能数据处理器、求两个数的差值、使用generate…for语句简化代码、使用子模块实现三输入数的大小比较