【发布时间】:2020-04-15 20:52:26
【问题描述】:
如果我有一个包装另一个对象的类(比如说 Pandas 数据框),我如何将文档字符串从包装类传递给包装类?
例如在下面的代码中:
import pandas as pd
class DataframeWrapper():
def __init__(self, df):
self.df = df
def plot(self, *args, **kwargs):
self.df.plot(*args, **kwargs)
df1 = pd.DataFrame(data=np.random.normal(0,1, size=(10,2)), columns=['a', 'b'])
wdf1 = DataframeWrapper(df1)
wdf1.plot('a', 'b')
如何让包装类中的绘图函数具有与 Pandas 绘图相同的文档字符串(以便可以通过按 shift+tab 在 Jupyter 中看到它)?
【问题讨论】:
-
您可以使用对象上的
__doc__属性访问文档字符串。它们是可写的。 -
如何将该文档分配给包装函数的绘图方法?
-
self.plot.__doc__ = df.plot.__doc__ -
这给了我一个错误:
AttributeError: attribute '__doc__' of 'method' objects is not writable。我将此行添加到构造函数的末尾。 -
嗯..让我试试这个..
标签: python