我正在使用 Python 3.7 并有类似的东西class A(object): def __init__(self, value: int): self.value = value @classmethod def factory(cls, value: int) -> A: return A(value=value)是的,这是一个人为的示例,但我本质上是试图注释工厂函数以声明它返回 的实例,但是,当我尝试 在文件上A运行 linter 时,此操作会失败,因为它抱怨未定义。flake8A有没有什么方法可以注释这个函数,这样 linter 就不会抱怨?
1 回答
慕少森
TA贡献2019条经验 获得超9个赞
您可以通过注释来避免这种情况'A'
:
class A: @classmethod def factory(cls, value: int) -> 'A': ...
或者,您可以使用注释:__future__
from __future__ import annotations
并继续注释A
。
添加回答
举报
0/150
提交
取消