一、介绍

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. ubuntu系统设置密码报错 Module is unknown

    修改账户密码报错 # passwd 报错信息 passwd: Module is unknown passwd: password unchanged   修改配置文件 # cd /etc/pam.d ...

  2. 1 新增硬盘挂载home文件夹。 2 修理扇区

    一 挂载新硬盘 主机磁盘容量不够大时,想新增一颗新磁盘的时候.并将磁盘全部分割成单一分割槽,且将该分割槽挂载到/home目录,你该怎么做呢? 1  安装硬盘. 2  磁盘分区. 3 格式化磁盘 4 将 ...

  3. vue v-for 组件传值 enter传值

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 转化json里面的特殊字符

    前几天要做一个接受图片地址并将图片地址存放在数据库中,发现图片地址中有好多特殊字符反斜杠,中括号之类的,下面就是解决这个问题的代码 public String StringToJson(String ...

  5. Struts功能详解——ActionForm

    ActionForm ActionForm用于封装用户的请求参数,而请求参数是通过JSP页面的表单域传递过来的.因此应保证ActionForm的参数,与表单域的名字相同.     ActionForm ...

  6. NX二次开发-bat脚本文件切换NX的环境变量(NX路径和语言)

    路径环境变量切换到NX9.bat @echo off setx /M UGII_BASE_DIR "D:\Program Files\Siemens\NX 9.0" ------- ...

  7. 20180713NOIP模拟赛

    20180713NOIP模拟赛 T1:动物园 zoo.cpp 2s [题目描述] 给定一张图,点有点权,求每个点到其他所有点中所有点的权值最小值之和. [思路] \(50pts\)做法:对于每个点跑一 ...

  8. (转)HashMap和HashSet的区别

    HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和H ...

  9. ubuntu 12.04系统黑屏,登录界面黑屏

    ubuntu 12.04系统黑屏,登录界面黑屏 原文链接:http://www.2cto.com/os/201305/213737.html   1.硬件环境     Intel® Core™ i5- ...

  10. super 关键字的使用及说明

    super 关键字主要用于访问父类的变量和方法. 代码示例: public class Student { String name; public Student(){ System.out.prin ...