![]() |
1
79
循环进口本身并不是一件坏事。这是自然的
更糟糕的做法是
相反,只导入模块。这使得名称间距更清晰,使以后的猴子修补成为可能,并解决了导入问题。因为你只是在导入 模块 在进口的时候,你只关心 班 里面还没有定义。当你开始使用这门课的时候,它会的。 那么,test/users.py:
测试/团队
此外,如果
|
![]() |
2
3
i.要使其生效,可以使用延迟导入。一种方法是让user.py单独存在,并将team.py更改为:
对于另一种选择,为什么不把团队和用户类放在同一个文件中呢? |
![]() |
3
2
坏习惯/臭味如下:
|
![]() |
4
0
这是我还没见过的东西。这是一个坏主意/设计使用
下面是另一个解决方案:
和文件
我开始喜欢这个模块的概念,这些模块非常大,但是有一些函数和类相互依赖。假设有一个名为
嗯,在
然后在其他每个文件上:
这个
最后,我只会指出,这样做是为了帮助用户提高可读性(较短的文件),因此我不会说循环导入“本质上”是不好的。所有的事情都可以在同一个文件中完成,但是我们正在使用这个文件,这样我们就可以分离代码,并且在滚动浏览这个巨大的文件时不会弄混自己。 |
![]() |
5
0
您可以只修复依赖关系图;例如,用户可能不必知道它是团队的一部分。大多数循环依赖项都承认这种重构。
循环依赖性显著地使重构复杂化,抑制代码重用,并减少测试中的隔离。
虽然在python中可以绕过
|