AttributeError:模块在避免循环引用时没有属性

2024-10-04 11:28:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python中的M-VC模式创建一个小应用程序。我使用的是PyCharm,我的文件夹结构看起来像this

为了避免循环引用的问题,我使用了import而不是from ... import

当my viewController.py如下所示时,程序将无错误地执行:

import model
class ViewController:
    def initialize(self, mod):
        self.model = mod

在initialize方法中添加model.Model表达式会导致一个错误:AttributeError: module 'model' has no attribute 'Model'为什么它在model.py中使用viewController.ViewController?怎么了

[新]viewController.py

import model
class ViewController:
    def initialize(self, mod:model.Model):
        self.model = mod

后退/\uu初始值

import model
import viewController
mModel = model.Model()
mVC = viewController.ViewController()
mModel.initializeApp(mVC)

型号.py

import viewController
class Model():
    def initializeApp(self, viewContr: viewController.ViewController):
        self.vc = viewContr
        self.vc.initialize(self)

Tags: pyimportselfmodmodeldef错误class