一、介绍

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=""):
return name,phone,authcCde apiMethod=func
args = inspect.getfullargspec(apiMethod).args
print(args)

最新文章

  1. openresty 前端开发入门三之JSON篇
  2. STL中vector、list、map、set区别(转载)
  3. 【SQL】SQL2012离线帮助文档安装不上的处理手记
  4. js之获取窗口大小和位置信息
  5. sql 2012艰难的安装
  6. JS控制图片拖动 放大 缩小 旋转 支持滚轮放大缩小 IE有效
  7. VMware系统运维(六)VMware vSphere Web Client安装
  8. Sqlserver系列(二) 模糊查询 like
  9. HDU 2112 HDU Today (Dijkstra算法)
  10. python常用正则表达式
  11. Java集合学习笔记
  12. 《.NET 设计规范》第 5 章:成员设计
  13. 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
  14. 硬核机器学习干货,手把手教你写KNN!
  15. JavaMap的一些常用方法
  16. Ubuntu1404安装eclipse(目的是为了运行python,当然java更可以)
  17. Javascript 2.4
  18. PAT A1099 Build A Binary Search Tree (30 分)——二叉搜索树,中序遍历,层序遍历
  19. java 运行时异常与非运行时异常理解
  20. MySQL Workbench常用快捷键

热门文章

  1. [转载]python异常如何全面捕获
  2. jq-demo-2种吸顶效果
  3. 关于mybaitis
  4. leetcode-并查集
  5. bzoj1013题解
  6. Fedora Linux 安装Qt5.2.0
  7. Python的变长参数
  8. 转载:jQuery 获取屏幕高度、宽度
  9. Scala 可变长参数
  10. sql 递归显示所有父节点