Foo = type('Foo', (), {})
Bar = Optional[Foo]
_
闇はerror: Variable "packagename.Foo" is not valid as a type
_
何をしてもこれを回避する方法はあります
Class Foo:
pass
Bar = Optional[Foo]
_
?
あなたはおそらく Generics または リテラル を使用する必要があります( - === - )。達成しようとしています。
Foo
の後で継承したい場合は、Genericsを使用してください。
from typing import Generic, Optional, TypeVar
Foo = TypeVar("Foo")
Bar = Optional[Foo]
class Baz(Generic[Foo]):
pass
_
Foo
のように何かを参照したい場合は、文字列リテラルが選択できる場合があります。
from random import choice
from typing import Literal, Optional
Foo = Literal["Foo"]
Bar = Optional[Foo]
def foo_to_bar() -> Bar:
return choice(["Foo", None])
_