inspect库 ######### * 提供了一系列用于获取、检查、分析 Python 对象信息的工具。这个模块对于编写调试工具、自动化测试以及其他需要操作或了解代码结构的任务非常有用。 * inspect 模块为开发者提供了在运行时检查和获取 Python 对象信息的功能,这对于编写更灵活、可维护的代码以及进行调试和分析非常有帮助。 .. note:: 在交互式环境中,可能无法准确地获取源代码,因为这些环境通常使用类似于 exec() 函数的方式执行代码,而不是从源文件中加载。因此,inspect.getsource 无法找到函数或对象的源代码。 :: corpus = xxxx import inspect print(inspect.getsource(corpus.__class__)) print(inspect.getfile(corpus.__class__)) 源代码检查:: import inspect def example_function(): print("Hello, World!") source_code = inspect.getsource(example_function) print(source_code) 获取对象信息:: import inspect def example_function(arg1, arg2): pass function_info = inspect.getfullargspec(example_function) print(function_info) output: FullArgSpec(args=['arg1', 'arg2'], varargs=None, varkw=None, defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={}) 堆栈跟踪:: # 对于调试和错误追踪非常有用 import inspect def example_function(): stack_trace = inspect.stack() print(stack_trace) 获取类层次结构:: # 获取类的继承关系和方法解析顺序(MRO) import inspect class ExampleParent: pass class ExampleChild(ExampleParent): pass class_info = inspect.getmro(ExampleChild) print(class_info)