一、介绍

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)

inspect模块的使用的更多相关文章

  1. python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性

    python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性 inspect import inspect def fun(): pass inspect.ism ...

  2. 14 - 函数参数检测-inspect模块

    目录 1 python类型注解 2 函数定义的弊端 3 函数文档 4 函数注解 4.1 annotation属性 5 inspect模块 5.1 常用方法 5.2 signature类 5.3 par ...

  3. inspect模块---检查活动对象

    inspect模块提供了一些有用的函数来帮助获取有关活动对象(如模块,类,方法,函数,跟踪,框架对象和代码对象)的信息.例如,它可以帮助您检查类的内容,检索方法的源代码,提取和格式化函数的参数列表,或 ...

  4. inspect模块详解

    inspect模块主要提供了四种用处: (1).对是否是模块,框架,函数等进行类型检查. (2).获取源码 (3).获取类或函数的参数的信息 (4).解析堆栈 使用inspect模块可以提供自省功能, ...

  5. python——inspect模块

    inspect模块常用功能 import inspect # 导入inspect模块 inspect.isfunction(fn) # 检测fn是不是函数 inspect.isgenerator((x ...

  6. python之inspect模块

      inspect模块主要提供了四种用处: 1.对是否是模块.框架.函数进行类型检查 2.获取源码 3.获取类或者函数的参数信息 4.解析堆栈 回到顶部 一.type and members 1. i ...

  7. python的inspect模块

    一.type and members 1. inspect.getmembers(object[, predicate]) 第二个参数通常可以根据需要调用如下16个方法: 返回值为object的所有成 ...

  8. 【Python】【有趣的模块】tqdm | inspect

    tqdm """ [tqdm] 显示循环的进度条,再也不用担心程序跑到哪里还要跑多久了 tqdm 可以直接包裹iterable对象 from tqdm import tq ...

  9. python模块inspect.py

    inspect模块用来检查对象的类型(函数,属性,类,抽象基类,方法,模块等等) 是一个封装好的非常有用的模块. ]) ]: cls = :]: content = ] = lines[].lstri ...

随机推荐

  1. C#跨线程访问(二)----thread参数、回调传参数

    一.单个参数(封箱也可实现多参数) class B  {      public static void Main()      {          Thread t = new Thread(ne ...

  2. 4.Struts2中Action的三种访问方式

    1.传统的访问方式-很少使用 通过<action>标签中的method属性,访问到action中的具体方法 具体实现: 1.action代码 import com.opensymphony ...

  3. SpringCloud+Eureka+Feign+Ribbon+zuul的简化搭建流程和CRUD练习

    环境:win10--idea2019--jdk8 1.搭建Eureka服务模块 1.1 新建eureka服务模块(Sping Initializr) 取名为eureka-server,并添加如下Dep ...

  4. 安装和使用pyspider框架时遇到的问题

    安装pyspider, 直接cmd中输入 pip install pyspider, 而后提示报错 从网上找到解决方法,pycurl需要根据python版本采用wheel方法安装. 下载链接为http ...

  5. 【JZOJ6421】匹配

    description analysis 对于普通树形\(DP\)可以设\(f[i][0/1],g[i][0/1]\)表示\([1,i]\)的线段树的最大值.方案数 \(0\)表示不选择根与某个儿子相 ...

  6. bzoj1022题解

    [题意分析] 最简单的Anti-Nim博弈模型. [解题思路] 引理:SJ定理 对于一个Anti-Nim游戏,只要有以下两条条件之一,先手必胜: 1.游戏的总SG函数为0且任意子游戏的SG函数不超过1 ...

  7. sqoop导出数据|Hive|HDFS和脚本编写

    导出数据 在Sqoop中,“导出”概念指:从大数据集群(HDFS,HIVE,HBASE)向非大数据集群(RDBMS)中传输数据,叫做:导出,即使用export关键字. HIVE/HDFS到RDBMS ...

  8. NX二次开发-直线分析函数UF_EVAL_ask_line与NXOpen::Line直线分析的用法

    NX11+VS2013 #include <NXOpen/Line.hxx> #include <NXOpen/NXException.hxx> #include <NX ...

  9. 【转载】API权限设计总结

    本文内容转自:http://blog.csdn.net/initphp/article/details/8636669 API权限设计总结: 最近在做API的权限设计这一块,做一次权限设计的总结. 1 ...

  10. linux下df查看空间已经占用%100,但是找不到大文件的解决方法

    有时候在linux下会遇到这种情况:df查看空间已经占用%100,但是找不到大文件,怎么回事呢,经过网上查找资料,得到解决方法: 1.使用lsof查看已删除但未释放的文件 lsof -n | grep ...