一般来说,包设计中做抽象时,个人习惯把基类抽出来单独放一个文件,我看很多其他人也喜欢这么做,比如做成这样
--鸟类大全\
|___ base.py
|___ 鸟人 1.py
|___ 鸟人 2.py
|___ 工具箱.py
大概这种感觉。
最近在做 type hints 时遇到一个循环导入的问题,即比如我有一个 class BaseBird:
存在于base.py
中,而class BirdmanOne(BaseBird)
存在于鸟人 1.py
中,显然鸟人 1.py 需要from .base import BaseBird
正常情况下没问题,在老版本里也一直是这么处理的。但是现在如果想引入类型提示特性的话,如果BaseBird
中的某个方法,或者base.py
中的其他函数、方法的输入,是存在于其他文件中的子类,这种情况下没办法直接从子类导入这种类,因为会变成循环引用。
有办法解决吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.