python 如何在不同模块中引入同一个实例变量?

例如我在main.py 实例化了一个类

#main.py
instance=Myclass()

然后在second.py里有个类要引用这个实例

#sedond.py
class second():
    def myMethod(self):
        a=instance.instanceMethod()
        return a
        
        

我知道可以直接用传参数的方式传过去,但是这个是个基础实例,后面的对象都是基于这个实例创建出来的,使用的地方很多,如果传递参数的方式传过去.每次都要写上参数传过去太麻烦了,
或者实例化的时候放在self.里面的话,每次调用要self.instance.instanceMothod()这样太繁琐了,请问大家是怎么解决这样的问题的?

阅读 4.4k
3 个回答
# main.py
def get_instance():
    if not instance:
        instance = Myclass()
    return instance

用单例模式。

不主动实例化这个类, 每个需要的地方调用这个类就可以了

个人认为main.py 是代表入口程序, second.py 不应该调用main.py!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题