Python 在类主体的类型定义中引用类名
我在使用所讨论的类键入语句时引用类名时遇到问题。以下代码显示了该问题:Python 在类主体的类型定义中引用类名,python,python-3.x,typing,Python,Python 3.x,Typing,我在使用所讨论的类键入语句时引用类名时遇到问题。以下代码显示了该问题: class C(): def __init__(self, a: C) self.a = a @property def a(self) -> C: return self.a 编译器抱怨C未定义。我试图做的是不可能的吗?我必须放弃在这个类中使用打字吗?你可以通过从“未来”导入注释的导入来解决这个问题: 或者简单地使用字符串: class C: de
class C():
def __init__(self, a: C)
self.a = a
@property
def a(self) -> C:
return self.a
编译器抱怨C未定义。我试图做的是不可能的吗?我必须放弃在这个类中使用打字吗?你可以通过从“未来”导入注释的导入
来解决这个问题:
或者简单地使用字符串:
class C:
def __init__(self, a: 'C'):
self.a = a
@property
def a(self) -> 'C':
return self.a
@Georgy我只是在类型定义中用引号将名称括起来。@Georgy,顺便说一句,我使用的是Python 3.8.3,所以PEP_0563中的一些材料是Python的,我不需要从\uuuuuuuuuuuuuu
class C:
def __init__(self, a: 'C'):
self.a = a
@property
def a(self) -> 'C':
return self.a