class 引用的类型提示是什么?
What is the type hint for a class reference?
我正在查看 PEP 484,但找不到有关如何键入提示 class 参考的说明。 class 引用是否如下所示声明为 Callable?
from typing import Callable
class SomeClass:
def __init__(self):
self.s = 'Hello'
def display(self):
print(self.s)
x: Callable[[], SomeClass] = SomeClass
instance = x()
instance.display()
如果您只关心 x
是 a class,您只需使用 type
(或其他一些合适的元 class).
x: type = SomeClass
如果 x
应该是 SomeClass
或其后代之一,请使用 typing.Type
x: typing.Type[SomeClass] = SomeClass
如果 x
必须 恰好 SomeClass
(无论出于何种原因),我认为 typing.TypeVar
是合适的选择。
x: typing.TypeVar('SomeClass', SomeClass) = SomeClass
我正在查看 PEP 484,但找不到有关如何键入提示 class 参考的说明。 class 引用是否如下所示声明为 Callable?
from typing import Callable
class SomeClass:
def __init__(self):
self.s = 'Hello'
def display(self):
print(self.s)
x: Callable[[], SomeClass] = SomeClass
instance = x()
instance.display()
如果您只关心 x
是 a class,您只需使用 type
(或其他一些合适的元 class).
x: type = SomeClass
如果 x
应该是 SomeClass
或其后代之一,请使用 typing.Type
x: typing.Type[SomeClass] = SomeClass
如果 x
必须 恰好 SomeClass
(无论出于何种原因),我认为 typing.TypeVar
是合适的选择。
x: typing.TypeVar('SomeClass', SomeClass) = SomeClass