以下产生NameError: name 'Client' is not defined.我该如何解决?
class Server():
def register_client(self, client: Client)
pass
class Client():
def __init__(self, server: Server):
server.register_client(self)
Run Code Online (Sandbox Code Playgroud) 我试图找出类型的自引用如何与python3的类型注释一起工作 - 文档没有指定任何关于此的内容.
举个例子:
from typing import TypeVar, Optional, Generic
T = TypeVar('T')
class Node(Generic[T]):
left = None
right = None
value = None
def __init__(
self, value: Optional[T],
left: Optional[Node[T]]=None,
right: Optional[Node[T]]=None,
) -> None:
self.value = value
self.left = left
self.right = right
Run Code Online (Sandbox Code Playgroud)
此代码生成错误:
Traceback (most recent call last):
File "node.py", line 4, in <module>
class Node(Generic[T]):
File "node.py", line 12, in Node
right: Optional[Node[T]]=None,
NameError: name 'Node' is not defined
Run Code Online (Sandbox Code Playgroud)
这是使用Python 3.5.1