[英]type hint in method for a nested class?
考虑一个嵌套的 class 定义外部 class 属性的类型:
class Test():
def __init__(self):
self.foo: list[self.Test2] = []
class Test2():
pass
使用各种类型检查器,此注释无效。 例如,PyRight 采用分配值的类型,即通用列表[]
而不是类型提示list[self.Test2]
。
(variable) foo: list
如果我用bar: list[Test.Test2] = []
在最外面的 scope 分配一个变量,它可以正常工作:
(variable) bar: list[Test2]
如何让foo
将list[Test2]
作为其类型?
根本问题是self
不是一种类型,因此self.Test2
也不是。
使用static对类型的引用,它将起作用。
class Test:
def __init__(self):
self.foo: list[Test.Test2] = []
class Test2:
pass
如果名称长度是一个问题,请使用别名。
class Test:
def __init__(self):
self.foo: list[T2] = []
class Test2:
pass
T2 = Test.Test2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.