python模块—inspect
python inspect
- type and member
- Retrieving source code
- class and functions
- The interpreter stack
inspect的主要作用
- 对是否是模块,框架,函数进行类型检查
- 获取源码
- 获取类或者函数的参数信息
- 解析堆栈
type and member
inspect.getmembers(object[, predicate])
第二个参数通常可以根据需要调用如下16个方法;
返回值为object的所有成员,以(name,value)对组成的列表
inspect.ismodule(object): 是否为模块
inspect.isclass(object):是否为类
inspect.ismethod(object):是否为方法(bound method written in python)
inspect.isfunction(object):是否为函数(python function, including lambda expression)
inspect.isgeneratorfunction(object):是否为python生成器函数
inspect.isgenerator(object):是否为生成器
inspect.istraceback(object): 是否为traceback
inspect.isframe(object):是否为frame
inspect.iscode(object):是否为code
inspect.isbuiltin(object):是否为built-in函数或built-in方法
inspect.isroutine(object):是否为用户自定义或者built-in函数或方法
inspect.isabstract(object):是否为抽象基类
inspect.ismethoddescriptor(object):是否为方法标识符
inspect.isdatadescriptor(object):是否为数字标识符,数字标识符有__get__ 和__set__属性; 通常也有__name__和__doc__属性
inspect.isgetsetdescriptor(object):是否为getset descriptor
inspect.ismemberdescriptor(object):是否为member descriptorinspect.getmoduleinfo(path): 返回一个命名元组(name, suffix, mode, module_type)
name:模块名(不包括其所在的package)
suffix:
mode:open()方法的模式,如:‘r’, 'a’等
module_type: 整数,代表了模块的类型inspect.getmodulename(path):根据path返回模块名(不包括其所在的package)
Retrieving source code
- inspect.getdoc(object): 获取object的documentation信息
- inspect.getcomments(object)
- inspect.getfile(object): 返回对象的文件名
- inspect.getmodule(object):返回object所属的模块名
- inspect.getsourcefile(object): 返回object的python源文件名;object不能使built-in的module, class, mothod
- inspect.getsourcelines(object):返回object的python源文件代码的内容,行号+代码行
- inspect.getsource(object):以string形式返回object的源代码
- inspect.cleandoc(doc):
class and functions
- inspect.getclasstree(classes[, unique])
- inspect.getargspec(func)
- inspect.getargvalues(frame)
- inspect.formatargspec(args[, varargs, varkw, defaults, formatarg, formatvarargs, formatvarkw, formatvalue, join])
- inspect.formatargvalues(args[, varargs, varkw, locals, formatarg, formatvarargs, formatvarkw, formatvalue, join])
- inspect.getmro(cls): 元组形式返回cls类的基类(包括cls类),以method resolution顺序;通常cls类为元素的第一个元素
- inspect.getcallargs(func[, *args][, **kwds]):将args和kwds参数到绑定到为func的参数名;对bound方法,也绑定第一个参数(通常为self)到相应的实例;返回字典,对应参数名及其值;
from inspect import getcallargs
def f(a, b=1, *pos, **named):
… pass
getcallargs(f, 1, 2, 3)
{‘a’: 1, ‘named’: {}, ‘b’: 2, ‘pos’: (3,)}
getcallargs(f, a=2, x=4)
{‘a’: 2, ‘named’: {‘x’: 4}, ‘b’: 1, ‘pos’: ()}
getcallargs(f)
Traceback (most recent call last):
…
TypeError: f() takes at least 1 argument (0 given)
The interpreter stack
- inspect.getframeinfo(frame[, context])
- inspect.getouterframes(frame[, context])
- inspect.getinnerframes(traceback[, context])
- inspect.currentframe()
- inspect.stack([context])
- inspect.trace([context])
python模块—inspect相关推荐
- python的inspect模块
发现python有个好用的检查模块-inspect, 查看源文件发现它提供了不少好用的方法: """ Here are some of the useful functi ...
- inspect python模块_python常用模块-inspect模块
#判断模块.框架.类.函数的方法,和type返回的类型是一样的,只是这里是判断 inspect.getmodulename(path) 获取模块名称 inspect.ismodule(object) ...
- python 模块 导入机制 模块搜索 Python包 发布python模块或程序
python 模块 python模块:以.py结尾的代码文件. 顶层文件: 程序执行入口 模块文件1 模块文件2 模块文件3 在python中一 ...
- Python模块(自己整理并不完整)
PY核心模块方法 ******************** os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdi ...
- GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态
GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态 一个Python模块,用于在Python中使用nvidia-smi以编程方式从NVIDA GPU获取GP ...
- 在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录
简介 Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等 ...
- Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8
我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...
- Python培训教程分享:Python模块如何导入__all__属性?
本期小编为大家带来的Python培训教程是关于"Python模块如何导入__all__属性?"的内容,后面在工作中是会遇到Python模块这个工作内容的,Python模块的开头通常 ...
- 分享3个好用到爆的 Python 模块,点赞收藏
作者 | 俊欣 来源 | 关于数据分析与可视化 今天给大家介绍3个特别好用的Python模块,知道的人可能不多,但是特别的好用. Psutil Pendulum Pyfiglet Psutil Pyt ...
最新文章
- 重置npm设置_密码重置用户流程4部曲
- Python高阶函数和函数嵌套
- 配置zabbix监控windows,cmd运行报错cannot connect to Service Manager: [0x00000005]
- BZOJ 3195: [Jxoi2012]奇怪的道路 | 状压DP
- 教师计算机培训心得体会范文,xx年教师计算机培训心得体会范文.doc
- ffmpeg 分辨率 压缩_用GPU加速FFmpeg中的超分辨率功能
- StringBuilder和Char[]在平台调用中的差异
- torch.full 【输出大小为size内容为填充张量为fill_value的张量】
- Spring MVC 基础笔记
- php三步运算法,小技巧----“三步翻转法”
- 用例规约要细致到万无一失吗?
- 约瑟夫环C语言递归实现
- 如何在word中的图片上画圈标注_word图片上画圈 如何在word图片中进行画圈标示...
- [转]阮杰:从散户到身价过亿的私募掌门人
- Vue源码阅读(28):mergeOptions() 方法源码解析
- 有点甜用计算机怎么谈,有点甜造句
- android全渠道浅谈
- 阿里云云安全理工程师认证 部分题目 ACA
- SDN学习笔记(一)
- Word 一件删除所有空格