相互に利用するためにインポートする必要はないかもしれませPath
ん。node.py
Path
Node
# in __init__.py (The order of imports should not matter.)
from .node import Node
from .path import Path
# in path.py
from . import Node
class Path
...
def return_something_pathy(self):
...
# in node.py
class Node
def __init__(self, path):
self.path = path
...
def a_node_method():
print(self.path.return_something_pathy())
Node
が を利用していることを明確にするためにPath
、型ヒントを追加します。PEP 563で説明されている型注釈で前方参照をサポートするために、Python 3.7 以降で利用可能な機能があります。
# in node.py (Now with type hinting.)
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 の円形のインポート ホールからあなたを掘り出すためのさらに別のソリューションは、これを教えてくれた素晴らしいブログ投稿です。