首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Python中访问当前执行的模块或类名?

在Python中,可以使用内置的inspect模块来获取当前执行的模块或类名。具体操作如下:

  1. 导入inspect模块:
代码语言:python
复制
import inspect
  1. 使用inspect.currentframe()获取当前执行的栈帧,然后使用inspect.getmodule(frame)获取当前执行的模块对象:
代码语言:python
复制
frame = inspect.currentframe()
module = inspect.getmodule(frame)
  1. 使用inspect.getmodule(frame).__name__获取当前执行的模块名:
代码语言:python
复制
module_name = inspect.getmodule(frame).__name__
  1. 使用inspect.getouterframes(frame)获取当前执行的函数或方法所在的类对象:
代码语言:python
复制
outer_frames = inspect.getouterframes(frame)
class_name = outer_frames[1][3]

完整代码示例:

代码语言:python
复制
import inspect

def get_module_and_class_name():
    frame = inspect.currentframe()
    module = inspect.getmodule(frame)
    module_name = module.__name__
    outer_frames = inspect.getouterframes(frame)
    class_name = outer_frames[1][3]
    return module_name, class_name

class Test:
    def test_method(self):
        module_name, class_name = get_module_and_class_name()
        print(f"Module name: {module_name}")
        print(f"Class name: {class_name}")

if __name__ == '__main__':
    t = Test()
    t.test_method()

输出结果:

代码语言:txt
复制
Module name: __main__
Class name: Test

注意:以上代码仅适用于获取当前执行的模块或类名,如果需要在其他场景下获取模块或类名,可能需要使用其他方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券