有没有一种用 `python-attrs` 记录属性的好方法?

Is there a good way to document attributes with `python-attrs`?

我习惯用文档字符串记录我的 __init__() 函数,但我想利用 attrs 包的好处。文档字符串在 IPython 或 Jupyter notebook 中很有用,因此我可以看到参数的含义。有没有好的方法来做到这一点?在此示例代码中:

@atrr.s
class Coordinates(object):
    """ A set of coordinates
    """
    x = attr.ib()
    y = attr.ib()

"""
In [1]: Coordinates?
Init signature: Coordinates(x, y) -> None
Docstring:     
A set of coordinates
    
Init docstring: Method generated by attrs for class Coordinates.
Type:           type
Subclasses:
"""

如何向用户描述 xy 变量?例如,我如何指定这些以度为单位?

在 Python 中,属性和(更重要的)__init__ 参数的文档出现在 class 文档字符串 中,因此存在attrs 在这种情况下并不重要:

@attr.define
class Coordinates:
    """
    A set of coordinates.

    :param int x: Foo in degrees.
    :param int y: Bar in degrees.
    """
    x: int
    y: int

有关详细信息,请查看 RTD 的 docs on writing docstrings

如果您不喜欢这种格式,另一种常见的格式叫做 Napoleon,来自 Google:https://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html