【问题标题】:passing self as an argument in a helper method在辅助方法中将 self 作为参数传递
【发布时间】:2012-02-07 11:33:30
【问题描述】:

我正在处理一个类,并试图从类中调用一个辅助方法。我得到了下面的代码,但我不确定为什么当我在方法中已经有“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

【问题讨论】:

    标签: python class arguments self


    【解决方案1】:

    调用方法的正确方式只是

    var = self.__helper(record)
    

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

    【讨论】:

      【解决方案2】:

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

      如果你这样做:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-30
        • 2015-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-05
        • 1970-01-01
        相关资源
        最近更新 更多