获取实例化我的课程的模块的名称

时间:2018-08-06 09:43:34

标签: python python-3.x oop

我正在编辑一些我无法控制的系统正在调用的代码。该系统从几个不同的地方初始化我的班级。我需要执行不同的操作,具体取决于从哪里调用我的课程。 有什么方法可以找到对象的初始化位置?

last_data

A.py

class InitializerA: def calling_function(self): Called() class InitializerB: def calling_function(self): Called()

B.py

2 个答案:

答案 0 :(得分:1)

通过修改此问题中给出的方法,我能够找到答案: How to get the caller class name inside a function of another class in python?

inspect库帮助我检查了调用堆栈。

答案 1 :(得分:0)

您可以将初始化它的类作为参数传递给Called,即:

class class InitializerA:
def calling_function(self):
    Called(self.__name__)


class Called:
def __init__(self, initializer):
     self.initializer = initializer