inspect
-
- inspect功能介绍
- 实战
- 使用场景
头一次遇到inspect模块是在importlib模块进行动态加载其他模块的时候遇到的,很神奇的一个第三方工具,因此写一篇基础的使用案例来记录可能会遇到的使用方法
inspect功能介绍
Python 的 inspect
模块提供了许多有用的函数,允许你在运行时检查 Python 对象(如函数、方法、类等)的详细信息。这个模块可以用来获取对象的源代码、文档字符串、参数列表等信息,常用于调试、分析代码结构或构建依赖于反射的高级工具。
以下是 inspect
模块中一些常用功能的简要概述和示例代码:
1. inspect.getsource(object)
获取对象的源代码。
# -*- coding: utf-8 -*-
import inspect
def example_function(name,age):
'''
:param name: input a name str
:param age: input a age int
:return:
'''
print("Hello, World!")
# 获取函数的源代码
source_code = inspect.getsource(example_function)
print(source_code)
2. inspect.getdoc(object)
获取对象的文档字符串。
# 获取函数的文档字符串
doc_string = inspect.getdoc(example_function)
print(doc_string) # 输出: 这是一个示例函数。
3. inspect.getmembers(object, predicate=None)
⭐⭐
获取对象的所有成员,包括方法、属性等。
class ExampleClass:
def __init__(self):
self.name='test'
self.age=3
def test(self):
pass
# 获取类的成员
members = inspect.getmembers(ExampleClass)
for name, member in members:
print(f"{
name}: {
member}")
predicate参数
import inspect
class MyClass:
def method1(self):
pass
def method2(self):
pass
@property
def prop(self):
pass
# 定义一个 predicate 函数,只返回方法
def