【问题标题】:Spyder doesn't display docstring when using @property decorator使用@property 装饰器时,Spyder 不显示文档字符串
【发布时间】:2016-10-27 21:36:37
【问题描述】:

在Spyder 中使用Ctrl + i 通常会显示光标所在对象的文档字符串,但对于以下代码中的B 方法,它会返回红色的“没有更多可用的文档”消息:

class A():
    @property
    def B(self):
        ''' This is a docstring. '''

如果 @property 装饰器被注释掉,它工作正常。我知道property 以某种方式环绕 B,但似乎应该有一种简单的内置方法来让文档字符串通过,但我找不到答案。

有没有办法解决这个问题?获得Spyder 交互式帮助以显示可能许多类方法的文档字符串的最佳方法是什么,每个方法都有@property 装饰器?

This question 看起来确实相关,并且可能有助于回答为什么它会以这种方式运行,但这是否意味着我需要以某种方式继承 property 内置函数?

编辑:也许这是 Spyder 内部的东西,因为它适用于 @property:

>>> print(A.B.__doc__)    
 This is a docstring. 

【问题讨论】:

  • 如果你设置了property函数的文档参数(它是参数之一,但我不知道如何以装饰器形式传递它),这将是属性的文档.
  • 也许这与 Spyder 本身有关。以下链接中的电压示例表明property 应该通过以下方式传递文档字符串:docs.python.org/3/library/functions.html#property
  • 如果有帮助,我正在使用 Python 3.5.1 和 Spyder 2.3.8
  • 我没用过 Spyder,所以不知道。

标签: python spyder python-decorators docstring


【解决方案1】:

我发现从 Spyder 2.3.8 升级到 Spyder 3.0.1 可以解决这个问题。文档字符串现在可以正确显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 2010-12-19
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    相关资源
    最近更新 更多