有没有办法从class A
获取class B
在运行时分配的值而不将作为参数传递给构造函数? (例如不使用new_b = B(self.value)
)
class_a.py
from class_b import B
class A():
def __init__(self, value):
self.value = value
self.load()
def load(self):
new_b = B()
class_b.py
class B():
def __init__(self):
self.value = A.value # here we should get a value from instantiating class A
答案 0 :(得分:1)
是的,这是可能的,但从来没有这样做过。这是不好的做法,如果你开始考虑做这样的事情,你做错了。无论如何,这条线会做到这一点:
import inspect
inspect.getouterframes(inspect.currentframe())[1].frame.f_locals["self"].value
答案 1 :(得分:-1)
如上所述,传递参数的方式更为明确。但是,您可以尝试使用Super关键字初始化您想要获取值的基类方法。
请参阅此帖子以供参考,Understanding Python super() with __init__() methods