Python 関数アノテーションを使用して、静的ファクトリ メソッドの戻り値の型を指定するつもりでした。これは、アノテーションの望ましい使用例の 1 つであることを理解しています。
class Trie:
@staticmethod
def from_mapping(mapping) -> Trie:
# docstrings and initialization ommitted
trie = Trie()
return trie
PEP 3107は次のように述べています。
関数の注釈は、コンパイル時に任意の Python 式を関数のさまざまな部分に関連付ける方法にすぎません。
Trie
は Python で有効な式ですね。Pythonは同意しないか、名前が見つかりません:
def from_mapping(mapping) -> Trie:
NameError: name 'Trie' is not defined
object
基本型 (または などint
) または標準ライブラリ型 ( などcollections.deque
) が指定されている場合、このエラーは発生しないことに注意してください。
このエラーの原因と修正方法を教えてください。