python - AttributeError:模块没有属性,同时避免循环引用错误
问题描述
我想在 python 中使用 M-VC 模式创建小应用程序。我正在使用 PyCharm,我的文件夹结构如下所示。
为了避免循环引用的问题,我使用import
not from ... import
。
当我的 viewController.py 看起来像这样时,程序执行没有错误:
import model
class ViewController:
def initialize(self, mod):
self.model = mod
在初始化方法中添加model.Model
表达式会导致错误:为什么它在 model.py 中起作用?出了什么问题?AttributeError: module 'model' has no attribute 'Model'
viewController.ViewController
[新]viewController.py
import model
class ViewController:
def initialize(self, mod:model.Model):
self.model = mod
返回/__init_.py
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)
解决方案
推荐阅读
- html - Foreach 中的 HTML 部分视图
- json - 是否可以使用 serde_json 反序列化看起来像 JSON(但不是)的数据?
- unity3d - 消除 lerps 之间的延迟
- neural-network - NN可以通过速度而不是求解泊松方程来预测压力吗?
- xslt - 如何仅在 XPATH 中选择相同节点的位置?
- regex - Powershell:如果命令的输出与预期的 3 个字符串的数组不同,则发送电子邮件
- c# - 如何对 IEnumerable 上的一个或多个键进行排序
> 结果集? - go - 在 go-graphql 中获取变量 \"$address\" 不能是非输入类型 \"String!\
- mysql - MySQL JSON - 如何在匹配路径的所有元素上使用 JSON_SET?
- sql-server - 在 SQL Server 中插入文件/文件名以在处理后提取