我正在编辑一些我无法控制的系统正在调用的代码。该系统从几个不同的地方初始化我的班级。我需要执行不同的操作,具体取决于从哪里调用我的课程。 有什么方法可以找到对象的初始化位置?
last_data
:
A.py
class InitializerA:
def calling_function(self):
Called()
class InitializerB:
def calling_function(self):
Called()
:
B.py
答案 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