当前位置: 首页 > 知识库问答 >
问题:

如何注释返回self的Python3方法?

江天宇
2023-03-14

功能注释:PEP-3107

背景:我是PyCharm用户,在Linux上拥有CPython 3.4x。我发现注释函数参数和返回类型很有帮助。当我使用这些方法时,IDE可以更好地提示我。

问题:对于自链接方法,如何注释方法返回值?如果我使用类名,Python会在编译时抛出一个异常:namererror:name'X'未定义

示例代码:

class X:
    def yaya(self, x: int):
        # Do stuff here
        pass

    def chained_yaya(self, x: int) -> X:
        # Do stuff here
        return self

作为一个技巧,如果我把X=无放在类声明的前面,它就会起作用。然而,我不知道这种技术是否有意想不到的负面副作用。

共有1个答案

芮化
2023-03-14

你可以做:

class X: 
    pass

class X:
    def yaya(self, x: int):
        # Do stuff here
        pass

    def chained_yaya(self, x: int) -> X:
        # Do stuff here
        return self

在您的代码中,直到类定义完成,X才被定义。

这里也有同样的问题:将当前类作为返回类型注释

他的解决办法是使用字符串。在你的代码中,那将是-

 类似资料:
  • 我开始更多地使用Python3的类型支持,并且我希望能够注释作为替代构造函数的的返回类型。 下面是一个简单的例子;如果我包含注释,它将失败: 那么,在为类型注释定义类之前,如何引用类呢?

  • 确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释: Python中单行注释以 # 开头,例如:: # 这是一个注释 print("Hello, World!") 多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如: 1、单引号(''') #!/usr/bin/python3 ''' 这是多行注释,用三个单引号 这是多行注释

  • 问题内容: 我如何使用类型提示来注释一个返回总是返回两个值的函数:a和a ?提示很接近,除了将返回值类型限制为元组,而不是生成器或其他可迭代类型。 我主要是好奇的,因为我想注释一个用于返回多个值的函数,如下所示: 通常函数喜欢做这样的事情(它返回一个元组),但我喜欢的类型暗示要足够灵活,以取代发电机或列表或别的东西返回的元组。 问题答案: 您总是返回 一个 对象;使用只需返回一个元组。 是的,完全

  • 问题内容: 我已成功将此注释用于Dao类。回滚适用于测试。 但是现在我需要回滚真实代码,而不仅仅是测试。有用于测试的特殊注释。但是哪些注释适用于非测试代码?对我来说这是一个大问题。我已经花了一天的时间。官方文档不符合我的需求。 employeeDao is 这是一个注释可以很好地运行的测试: HibernateDaoBeans.xml 是的,我回滚了交易。我刚刚为服务添加了BEAN …,然后注释@

  • 在python 3.x中,通常使用函数的返回类型注释,例如: “void”类型的正确注释是什么? 我正在考虑三种选择:

  • 问题内容: 美好的一天。如下代码: 据我了解,如果方法中存在异常,则不会回滚事务。以及如何使它滚动?并返回SomeResult 问题答案: 您不应该以编程方式调用回滚。根据docs的建议,最好的方法是使用声明性方法。为此,您需要注释哪些异常将触发回滚。 在你的情况下,像这样 看一下@Transaction API 和有关回滚事务的文档。 如果尽管有文档建议,但仍要进行程序化回滚,则需要按照已建议的