python - tipo - referencia circular c#
Tipo de pistas: resolver dependencia circular. (1)
Puede usar una referencia hacia adelante usando un nombre de cadena para la clase de Client
aún no definida:
class Server():
def register_client(self, client: ''Client'')
pass
A partir de Python 3.7 , también puede posponer todos los análisis de tiempo de ejecución de las anotaciones agregando la siguiente importación __future__
en la parte superior de su módulo:
from __future__ import annotations
en qué punto las anotaciones se almacenan como representaciones de cadena del árbol de sintaxis abstracta para la expresión; puede usar typing.get_type_hints()
para resolverlos (y resolver las referencias hacia adelante como se usa anteriormente).
Ver PEP 563 - Evaluación pospuesta de anotaciones para detalles; este comportamiento será el predeterminado en Python 4.0.
Lo siguiente produce NameError: name ''Client'' is not defined
. ¿Cómo puedo resolverlo?
class Server():
def register_client(self, client: Client)
pass
class Client():
def __init__(self, server: Server):
server.register_client(self)