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

问题描述 投票:0回答:1

假设我有以下几点。

from __future__ import annotations

class A(object):

    @classmethod
    def some_class_method(cls: ?, parameter: str) -> ?:
        return A

该怎么做 ? 如果我想说明的是 some_class_method 正在返回 A 类的实例 A.

编辑:@chepner @chepner 带来了一个好点子 ? 指的是 A的任何子类 A.

python python-3.x
1个回答
5
投票

你不能使用 A 因为它还没有被定义。相反,您需要使用 'A'. 您还需要使用 Type 自从 'A' 指的是 A:

from typing import Type

class A(object):
    @classmethod
    def some_class_method(cls: Type['A'], parameter: str) -> Type['A']:
        return A
© www.soinside.com 2019 - 2024. All rights reserved.