la anotación de la función de Python en el tipo de retorno de clase es el aumento de clase indefinido

Python 3.6.1, hay varias formas de sugerencias de tipo, en la cadena de documentos o anotación. ¿Cómo puedo lograr esto usando la anotación?

Digamos que tengo una clase, que tiene un método de claseload para cargar datos desde algún lugar, json o base de datos, por ejemplo, y construir y devolver una instancia de esta clase.

class Foo:

    @classmethod
    def load(cls, bar) -> Foo:
        pass

Creo que esto es bastante sencillo, pero el intérprete de Python generó un error de que Foo no está definido.

Sé la razón, porque cuando Python carga la firma de función de carga de Foo, la definición de la clase Foo no está terminada, por lo que Foo aún no está definido.

¿Es esto un inconveniente de la anotación de función? ¿Puedo encontrar alguna forma de lograr este objetivo, en lugar de usar la cadena de documentación para escribir una sugerencia, ya que realmente me gusta la claridad de la anotación de función?

Respuestas a la pregunta(1)

Su respuesta a la pregunta