nur für Python < 3.10 (ab da ist es Standard-Verhalten)
Ein Klasse gibt für einen Parameter oder einen Rückgabewert sich selbst als Typ an
das resultiert in
NameError: name 'xyz' is not defined
Grund: Der Typ existiert zum Zeitpunkt des parsens der Type-Hints noch nicht
class MyTestClass():
@classmethod
def factory() -> MyTestClass:
return MyTestclass()
MyTestClass wird als Rückgabewert-Typ der factory-Methode angegeben
zum Zeitpunkt wo der Typ evaluiert wird existiert MyTestClass aber noch nicht, da der Code der Klasse ja gerade erst geparst wird
from __future__ import annotations
class MyTestClass():
@classmethod
def factory() -> MyTestClass:
return MyTestclass()