【发布时间】:2019-04-03 14:00:49
【问题描述】:
我的设置: mod1.py:
class cars:
def __init__(self,x,y,z):
self.x = x
mod2.py:
import mod1
obj = mod1.cars(x,y,z)
mod3.py
from mod2 import obj
现在,发生的事情是当我在汽车的 mod3.py 初始化方法中导入 obj 时正在执行。我想要它,因为 obj 已经在 mod2.py 中初始化,mod3 应该已经初始化实例而不是创建新实例。
我怎么能在python中做到这一点
【问题讨论】:
-
你认为为什么要创建一个新的?
-
你为什么不用
from mod2 import obj -
哦,我错过了,@Bazingaa。这可能解释了它。
-
它不应该在每个导入时执行。仅在 first 导入时。您确定在运行
mod3.py时没有看到第一个导入吗?然后它将导入mod2,实例化一个实例,打印一条消息。但我相信,随后导入obj from mod2不会导致额外的打印。请在您看到多个实例的地方发布minimal reproducible example。 -
我试过你的代码,从两个单独的模块中导入它,只看到
__init__的一个打印。无法复制。
标签: python oop python-import pickle python-object