PEP-526 与类变量的文档字符串不兼容



如果我将PEP-526用于类级变量,我必须将它们记录在类的文档字符串中,在这种情况下,我需要选择我最喜欢的方法来执行此操作。

Python 3.6.4 pylint==1.8.4

class Joe(object):
  counter: int = 0
  """This is a counter"""

Pylint 说(正确,无论变量是否分配给(:

W:3,2:字符串语句没有效果(无意义的字符串语句(

不是 PEP 526 与文档字符串不兼容; 是 Pylint 不明白你做了什么。等待更新。

一些工具支持类变量的文档字符串概念,但它从来都不是 Python 本身的一部分,PEP 526 并没有改变事情。

在这种情况下,

pylint 将带有注释的行理解为字符串表达式,而不是类文档注释。这意味着它字符串作为表达式未存储在任何变量中,并且在表达式执行后将丢失。这是同一个例子:

def foo():
    a = 1
    """ this is string expression, not doc string """
    b = 2

在您的情况下,更正确地将文档字符串放在顶级类正文中:

class Joe(object):
    """This is a counter"""
    counter: int = 0

皮林特正确理解它:

************* Module tt
C:  4, 0: Trailing newlines (trailing-newlines)
C:  1, 0: Missing module docstring (missing-docstring)
R:  1, 0: Too few public methods (0/2) (too-few-public-methods)

最新更新