python值inspect模块的简单使用

作用

  • inspect是用来获取对象的信息,这个对象可以为
    • 模块(往往是一个py文件)
    • 方法
    • 函数
    • 报错追踪
    • 帧对象
    • 代码对象
  • 它能用来帮助你检验类的内容,检索一个方法的源代码,提取并格式化函数的参数列表等等

语法

inspect.getmembers(object[,predicate])

  • 函数返回一个列表,列表中包含是个key,value的元祖
  • key是对象拥有的属性,value是具体的函数

返回类所有的成员

class Person:
    
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def get_name(self):
        return self.name
    
    def set_name(self, name):
        self.name = name
    
if __name__ == "__main__":
    import inspect
    print(inspect.getmembers(Person))

在这里插入图片描述
返回实例所有的成员

person = Person("sunwukong",18)
print(inspect.getmembers(person))

在这里插入图片描述

predicate
这个需要是一个函数,用来过滤符合条件成员

person = Person("sunwukong", 18)
print(inspect.getmembers(person, lambda _i: isinstance(_i, str)))

结果

[('__module__', '__main__'), ('name', 'sunwukong')]

inspect.getmodulename(path)

输入一个路径返回模块的名字

print(inspect.getmodulename("F:\my_profile\study\code_pub\study_code_pub\python\模块\inspect\main.py"))

输出

main

一些检测方法

  1. inspect.ismodule(object):检测object是否为模块
  2. inspect.isclass(object)检测object是不是一个类
  3. inspect.ismethod(object):检测object是不是一个方法
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值