如何让一个方法从同一个类中引用另一个方法?

时间:2018-02-13 18:23:24

标签: python-3.x function class oop class-method

我想更好地理解课程。假设我有一个处理数据修改的类,例如复制数据和重新采样数据。在我的情况下,函数resample需要函数duplicate,因为我想修改原始数据的副本而不是原始数据本身。

我已经看到类似的问题addressed here,但我无法将这些解决方案应用于我的案例。我想知道@classmethod是否需要import numpy as np import random class DataMods(): def __init__(self, data): self.data = data def duplicate(self): if isinstance(self.data, np.ndarray): res = np.copy(self.data) else: res = self.data[:] return res def resample(self, nshuffles=0, struct=np.array): # resample copy of data instead of data data_dup = self.duplicate(self.data) # this is the problematic line size = len(data_dup) if isinstance(nshuffles, int): if nshuffles > 1: for idx in range(nshuffles - 1): res = struct(random.sample(list(data_dup), size)) else: raise ValueError("nshuffles ...") return struct(random.sample(list(res), size)) aa = np.array([1, 2, 3, 4, 5]) a2 = DataMods(data=aa).resample(nshuffles=5) print(a2) >> TypeError: duplicate() takes 1 positional argument but 2 were given 之类的内容。

data_dup = self.duplicate(data)

如果我将有问题的行更改为:

NameError: name 'data' is not defined

然后我得到一个不同的错误:

-import

我尝试了一些不同的变体,但都没有成功。我没有正确理解的是什么?

0 个答案:

没有答案