您可能不需要进口Path
中node.py
,以便Path
和Node
利用彼此的。
from .node import Node
from .path import Path
from . import Node
class Path
...
def return_something_pathy(self):
...
class Node
def __init__(self, path):
self.path = path
...
def a_node_method():
print(self.path.return_something_pathy())
为了明确说明Node
正在使用Path
,请添加类型提示。从PPE 563开始,从Python 3.7开始有可用的功能来支持类型注释中的前向引用。
from __future__ import annotations
class Node
def __init__(self, path: Path):
self.path = path
...
def a_node_method():
print(self.path.return_something_pathy())
我遇到了一个另外的解决方案,它可以使您摆脱Python的圆形导入孔,这是一篇很棒的博客文章,它教会了我这一点。