hrp 发表于 2021-5-11 23:07:48

类方法中,如何使用自身类名作类型注解?

例子:# coding: utf-8

class C:
    def f(self) -> C:
      '''方法返回C实例,我将返回值注解写为->C,但会提示C未定义,我不确定该怎么写。'''
      return C()

会提示C未定义。

kogawananari 发表于 2021-5-12 00:40:36

import typing

T = typing.TypeVar('T', bound='C')

class C:
    @classmethod
    def f(cls:typing.Type) -> T:
      return C()

C.f()

来源:https://github.com/python/mypy/issues/1212

kogawananari 发表于 2021-5-12 00:43:54

还有个规范    返回实例的类方法(classmethod)   一般方法名用from开头 类似dict.fromkeys

hrp 发表于 2021-5-12 07:49:30

kogawananari 发表于 2021-5-12 00:40
来源:https://github.com/python/mypy/issues/1212

感谢,晚上研究下
页: [1]
查看完整版本: 类方法中,如何使用自身类名作类型注解?