python模块—inspect_inspect

inspect的主要作用

  • 对是否是模块,框架,函数进行类型检查
  • 获取源码
  • 获取类或者函数的参数信息
  • 解析堆栈

type and member

  1. 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 descriptor
  2. inspect.getmoduleinfo(path): 返回一个命名元组(name, suffix, mode, module_type)
    name:模块名(不包括其所在的package)
    suffix:
    mode:open()方法的模式,如:‘r’, 'a’等
    module_type: 整数,代表了模块的类型
  3. inspect.getmodulename(path):根据path返回模块名(不包括其所在的package)

Retrieving source code

  1. inspect.getdoc(object): 获取object的documentation信息
  2. inspect.getcomments(object)
  3. inspect.getfile(object): 返回对象的文件名
  4. inspect.getmodule(object):返回object所属的模块名
  5. inspect.getsourcefile(object): 返回object的python源文件名;object不能使built-in的module, class, mothod
  6. inspect.getsourcelines(object):返回object的python源文件代码的内容,行号+代码行
  7. inspect.getsource(object):以string形式返回object的源代码
  8. inspect.cleandoc(doc):

class and functions

  1. inspect.getclasstree(classes[, unique])
  2. inspect.getargspec(func)
  3. inspect.getargvalues(frame)
  4. inspect.formatargspec(args[, varargs, varkw, defaults, formatarg, formatvarargs, formatvarkw, formatvalue, join])
  5. inspect.formatargvalues(args[, varargs, varkw, locals, formatarg, formatvarargs, formatvarkw, formatvalue, join])
  6. inspect.getmro(cls): 元组形式返回cls类的基类(包括cls类),以method resolution顺序;通常cls类为元素的第一个元素
  7. 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):

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中…(img-FD4Ut1Qw-1712854753922)]

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值