una tipo serializar referencia objeto detectó python type-hinting python-3.5

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)