我想在Python 3.4+中定义2个类并使用类型提示,但它们之间存在某种依赖关系。
这是我的代码
class Child():
def __init__(self, name:str, parent:Parent) -> None:
"""Create a child
Args:
name (str): Name of the child
parent (Parent): Parent (object)
"""
self.name = name
self.parent = parent
parent.give_life(self)
class Parent():
def __init__(self, name:str) -> None:
self.name = name
self.Children = [] # type: List[Child]
def give_life(self, child:Child) -> None:
self.Children.append(child)
以及pylint
返回的错误:
E0601:使用变量' Parent'在分配之前
如何提示parent
类初始化函数的Child
参数的类型?
谢谢
答案 0 :(得分:2)
这是前瞻性声明的案例。
为了使其有效,您可以为'Parent'
函数Parent
而不是类Child.__init__
添加字符串{以及Parent.give_life
以使其对称)。
结果代码如下:
class Child():
def __init__(self, name:str, parent:'Parent') -> None:
"""Create a child
Args:
name (str): Name of the child
parent (Parent): Parent (object)
"""
self.name = name
self.parent = parent
parent.give_life(self)
class Parent():
def __init__(self, name:str) -> None:
self.name = name
self.Children = [] # type: List[Child]
def give_life(self, child:'Child') -> None:
self.Children.append(child)