将self作为辅助方法中的参数传递

时间:2012-01-11 03:14:23

标签: python class arguments self

我正在使用一个类,并尝试从类中调用辅助方法。我得到了以下代码,但我不确定为什么当我在方法中已经将“self”作为参数时,我调用它时必须将“self”作为参数传递给辅助函数。当我在下面的示例中调用Frequency .__ helper(self,record)时,是否有必要将其作为参数传递?

谢谢!

class Frequency:

    def __init__(self, record):
        self.record = record

    def __helper(self, datalist)
        do something to datalist...

    def getFreq(self):
        allrec = self.record
        record = allrec[1].split(' ')
        var = Frequency.__helper(self, record)
        return var

2 个答案:

答案 0 :(得分:3)

调用方法的正确方法就是

var = self.__helper(record)

这是做同样的事情,但是以更直观的方式。

答案 1 :(得分:2)

是的,在这种情况下你必须这样做,因为你没有将这个功能声明为@staticmethod。当方法不是静态时,它需要传递实例。

如果您执行以下操作:

class Frequency:
    @staticmethod
    def test(datalist):
        pass

您不需要将self定义到参数列表中。