我正在尝试在Python中进行一些简单的依赖注入。例如:
logic.py
class A(object):
def __init__(self):
print("A")
class B(object):
def __init__(self, a = A()):
self.a = a
因此,将A()作为B()的默认参数调用
main.py
from logic import B #this calls A()
if __name__ == "__main__":
print("main") # No concrete call to B() or A()
输出:
A
主要
如果我只想导入A()
,谁能解释为什么调用B
吗?为什么调用import B
运行__init__
的{{1}}?
要解决此问题,只需将A
更改为:
__init__