类型提示:类型类的参数

ant*_*869 17 python type-hinting python-3.x

我正在定义一个方法

def foo_my_class(my_class: ???, bar: str) -> None:
    """ Operate on my_class """
Run Code Online (Sandbox Code Playgroud)

我想知道,如何使用类型提示功能来指定应该在第一个参数中传递的类。

基本上,我应该放什么而不是在???那里做标记?

这里还有一些代码,可以更具体地说明我要实现的目标。

class Base(object):
   """base class"""

class X(Base):
    """some class"""

class Y(Base):
    """some other class"""   

foo_my_class(X, "foo")    
foo_my_class(Y, "bar")
Run Code Online (Sandbox Code Playgroud)

roi*_*ere 55

正如解释在这里,你可以使用类型

from typing import Type

class X:
    """some class"""

def foo_my_class(my_class: Type[X], bar: str) -> None:
    """ Operate on my_class """
Run Code Online (Sandbox Code Playgroud)


Dan*_*man -11

您只需使用该类本身。

def foo_my_class(my_class: MyClass, bar: str) -> None:
Run Code Online (Sandbox Code Playgroud)

来自PEP(强调我的):

类型提示可以是内置类(包括标准库或第三方扩展模块中定义的类)、抽象基类、模块中可用的类型types以及用户定义的类(包括标准库或第三方扩展模块中定义的类)模块)。

  • 这是错误的 - 您在这里检查输入是 MyClass 的实例,而不是 MyClass 类型本身 (23认同)