【发布时间】:2016-06-03 21:08:15
【问题描述】:
关于 numpydoc 文档字符串约定的问题:
我有一个类,其中包含许多不返回任何内容的方法,但为该类添加了一个属性。例如:
class MyClass(object):
def __init__(self, a, b):
self.a = a
self.b = b
return
def a_mult(self, mult):
"""
Multiplies `a` by `mult`.
Parameters
----------
mult : float
Value to multiply `a` by.
Returns
-------
None
"""
self.product = a * mult
return
在这个笨拙的例子中,MyClass.a_mult 不返回任何内容,而是为MyClass 添加了一个属性。
我在numpydoc 样式指南之后包含了MyClass.a_mult 的文档字符串。文档字符串指出该方法返回无,但我看不到记录MyClass.a_mult 方法如何修改MyClass 实例的标准方式。
提前感谢您的帮助!
【问题讨论】:
-
一般来说,如果它在类上设置一个属性(
product),我会调用方法set_product... -
“我有一个类,其中包含许多不返回任何内容的方法,但为该类添加了一个属性。” - 这是非常不寻常的,通常是一个糟糕的设计。它使你的 API 变得一团糟,并且与 Python 3 的拆分表实例字典优化相混淆。
-
我也同意@user2357112——应该非常谨慎地使用setter。如果用户想要设置产品属性,他们通常可以这样做
my_class.product = my_class.a * mult -
谢谢@mgilson - 我仍然在掌握课程以及应该如何使用它们!目前,我有一个类,其中包含一些需要在几个顺序步骤中处理的数据。该类有几个函数,每个函数都对数据执行操作,并将其存储在一个新的类属性中。然后序列中的下一个函数对新创建的属性进行操作。有没有更好/更蟒蛇的方式来做到这一点?
-
只看那个描述,在我看来这个类可能是不必要的......只需使用接受他们需要的数据并返回处理结果的函数。
标签: python numpy docstring numpydoc