我是一个长期的 python 开发人员。我正在尝试 Go,将现有的 Python 应用程序转换为 Go。它是模块化的,对我来说效果很好。
在 Go 中创建相同的结构后,我似乎陷入了循环导入错误,这比我想要的要多得多。在 python 中从来没有任何导入问题。我什至不必使用导入别名。所以我可能有一些在 python 中不明显的循环导入。我其实觉得这很奇怪。
无论如何,我迷路了,试图在 Go 中修复这些。我读过可以使用接口来避免循环依赖。但我不明白怎么做。我也没有找到任何关于这方面的例子。有人可以帮我吗?
目前的python应用结构如下:
/main.py
/settings/routes.py contains main routes depends on app1/routes.py, app2/routes.py etc
/settings/database.py function like connect() which opens db session
/settings/constants.py general constants
/apps/app1/views.py url handler functions
/apps/app1/models.py app specific database functions depends on settings/database.py
/apps/app1/routes.py app specific routes
/apps/app2/views.py url handler functions
/apps/app2/models.py app specific database functions depends on settings/database.py
/apps/app2/routes.py app specific routes
settings/database.py具有通用功能,例如connect()打开数据库会话。因此,应用程序包中的一个应用程序调用database.connect()并打开了一个 db 会话。
与settings/routes.py它的情况相同,它具有允许应用程序将其子路由添加到主路由对象的功能。
设置包更多的是关于函数而不是数据/常量。这包含应用程序包中的应用程序使用的代码,否则必须在所有应用程序中复制这些代码。因此,如果我需要更改路由器类,例如,我只需要更改settings/router.py,应用程序将继续工作而无需修改。
MMMHUHU
杨__羊羊
SMILET
相关分类