inspect的使用

# -*- coding: utf-8 -*-
# @Time    : 2018/9/11 10:29
# @Author  : cxa
# @File    : inspecttest.py
# @Software: PyCharm
import inspect


def get_inspect():
    return inspect.stack()


def get():
    return get_inspect()


if __name__ == '__main__':
    FrameInfo =get()[1]
    print("获取当前文件名",FrameInfo.filename)
    print("获取当前方法名",FrameInfo.function)

  输出

获取当前文件名 C:/PythtonProject/test/MethodTest/inspecttest.py
获取当前方法名 get

  其他:

# -*- coding: utf-8 -*-
# @Time    : 2018/9/11 10:29
# @Author  : cxa
# @File    : inspecttest.py
# @Software: PyCharm
import inspect
from requests_html import HTMLSession

class Test(object):
    '''
    这是注释
    '''

    def test(self):
        self.fuc = lambda x: x


class Testone(Test):
    pass


if __name__ == '__main__':
    # print(inspect.getdoc(HTMLSession))#获取注释
    # print(inspect.getsourcefile(HTMLSession))#获取文件路径
    # print(inspect.getsourcefile(Test))
    # print(inspect.getsourcelines(Test)) #代码块,每行一个元素,组成数组
    # print(inspect.getsource(Test))#代码块
    for k,v in inspect.getmembers(Test,callable):#获取可调用的自定义函数
        if not k.startswith('_'):
            print(k,v)

    for k,v in inspect.getmembers(Test(),callable):#获取可调用的实例
        if not k.startswith('_'):
            print(k,v)

  

posted @ 2018-09-11 10:39  公众号python学习开发  阅读(1269)  评论(0编辑  收藏  举报