类参数和返回值的类型注释

kin*_*pps 2 python python-3.x

假设我有以下内容:

from __future__ import annotations

class A(object):

    @classmethod
    def some_class_method(cls: ?, parameter: str) -> ?:
        return A
Run Code Online (Sandbox Code Playgroud)

?如果我想明确表示some_class_method返回的是 classA不是class的实例,应该怎么办A

编辑:@chepner提出了一个很好的点在?可能是指以A的任何子类A

Dee*_*ace 5

您不能使用,A因为它尚未定义。相反,您需要使用'A'. 您还需要使用Typesince'A'表示 的一个实例A

from typing import Type

class A(object):
    @classmethod
    def some_class_method(cls: Type['A'], parameter: str) -> Type['A']:
        return A
Run Code Online (Sandbox Code Playgroud)