我正在编写一些Python代码,其中必须使用父子设计,如下所示:
from typing import List
class Parent(object):
def add_children(self, child: List[Child]):
"""Do something here"""
class Child(object):
def set_parent(self, parent: Parent):
"""Do something here"""
但是Python提出了一个namererror
,并抱怨没有定义子类。这是合乎逻辑的,因为它位于
父类下。
有没有像C中的“转发声明”这样的东西来处理这样的问题,或者有其他方法?我试图用谷歌搜索它,但没有成功。
可以使用字符串指定名称:
def add_children(self, child: "List[Child]"):
为了进一步的解释,看看这个答案。
这是一个循环依赖性问题。
当您的代码运行并且遇到父类
类时,它会查找子类
类定义,但它是在之后定义的,因此无法找到它并抛出错误!
如果交换这两个定义,当代码运行时遇到子类
时,它会查找父类
类定义,但它是在之后定义的,因此无法找到它并抛出错误!
要解决此问题,必须在此处标识的名称中使用字符串,问题将得到解决
def add_children(self, child: "List[Child]"):
确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释: Python中单行注释以 # 开头,例如:: # 这是一个注释 print("Hello, World!") 多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如: 1、单引号(''') #!/usr/bin/python3 ''' 这是多行注释,用三个单引号 这是多行注释
我开始更多地使用Python3的类型支持,并且我希望能够注释作为替代构造函数的的返回类型。 下面是一个简单的例子;如果我包含注释,它将失败: 那么,在为类型注释定义类之前,如何引用类呢?
大家好,overflow社区,我正在努力解决Lombok的继承问题。我试图在子类上添加注释和,以便使用父lombok构造函数,但出现了错误“复制方法child()”。 父类: 儿童班: 错误消息: 重复方法Java类型中的孩子()(67109219) 感谢@rentox98的回复,我知道我的子类上的ArgsConstructor总是空的,这会导致两个相同的构造函数。 有没有Lombok方法可以基于
问题内容: 我正在尝试使用具有抽象基类的Python类型注释来编写一些接口。有没有一种方法来注释可能的类型和? 例如,如何表达一个函数的明智参数是一个或两个?给出,所以我的猜测是将类型注释为,但这是行不通的。 来自mypy的错误消息: Mypy不喜欢此函数调用是有道理的,因为它希望调用本身中包含a。解压后的附加内容还会产生我不理解的输入错误。 一个人如何诠释明智的类型和? 问题答案: 对于可变位置
Struts 2 应用程序可以使用Java5注释作为替代XML和Java属性配置。这里是清单的不同的类别有关的最重要的注解: 命名空间注释(动作注释): @ Namespace注释允许在Action类中,而不是基于零配置的约定动作的命名空间的定义。 结果注释 - (动作译注): @ Result注解允许在Action类中,而不是一个XML文件中定义的动作结果。 结果注释 - (动作译注): @ R
问题内容: 我想创建自己的注释来注释一些局部变量。编写注释不是问题,问题在于在运行时获取它们的信息。我只能从带注释的方法或方法参数中获得一些信息,而不能从局部变量中获得一些信息。有什么办法吗? 我自己的注释是这样的: 或者,作为替代方法,是否有任何方法可以获取该方法的代码,对其进行进一步解析并最终获得注释值? 提前致谢。 问题答案: 通过反射,您无法检索局部变量。因此,您无法通过反射检索局部变量上