zoukankan      html  css  js  c++  java
  • [Python]标准库inspect

    inspect 模块


    昨天在infoq上看到豆瓣架构师演讲有提到这个模块 今天找来文档看看
    Doc:这样写到
    The inspect module provides several useful functions to help get information about live objects such as modules, classes, methods, functions, tracebacks, frame objects, and code objects.

    这个模块是针对模块,类,方法,功能等对象提供些有用的方法。例如可以帮助我们检查类的内容,检查方法的代码,提取和格式化方法的参数等。


    #coding:utf8 
    
    import inspect
    
    import os 
    
    class Test(object):
        """Test Class """
        def test(self):
            self.fuc = lambda x:x 
    
    class Testone(Test):
        pass 
    
    
    #检查类型,模块,类,方法,生成器,代码等都可以
    print inspect.ismodule(os) 
    print inspect.isclass(Test) 
    
    print inspect.getdoc(Test)
    print inspect.getsourcefile(Test) #文件路径
    print inspect.getsourcelines(Test) #代码块,每行一个元素,组成数组
    print inspect.getsource(Test) #代码块 带缩进
    
    #打印全局变量中的模块对象
    myglobals = {}
    myglobals.update(globals())
    modules = [value
               for key, value in myglobals.items()
               if inspect.ismodule(value)]
    print modules  
    
    #查看类的可调用方法
    for name, value in inspect.getmembers(Test, callable):
        print "    Callable:", name
    
    for name, value in inspect.getmembers(Test(), callable):
        print "   Instance Callable:", name
    
    
    
    def hello():
        print inspect.stack()[0][3]
        print inspect.stack()
    
    hello()
    
    具体项目中的用法还不了解。
    


  • 相关阅读:
    重拾node第一天
    layui采坑记录 (上卷)QUQ
    解决IOS固定定位 fixed的不兼容
    layui 启用禁用切换详解
    jq form表单渲染单选框内容渲染
    vue 工具函数的封装 时间格式化函数
    CSS常见的继承属性
    git简单使用指南
    常用git命令大全
    react项目使用antd
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3093532.html
Copyright © 2011-2022 走看看