【问题标题】:How can I create a function that calls another function and passes in an instance attribute as an argument?如何创建一个调用另一个函数并将实例属性作为参数传递的函数?
【发布时间】:2020-05-16 17:40:18
【问题描述】:

我对编码相当陌生,并且对如何从另一个函数调用一个函数感到非常困惑。我正在尝试将实例属性作为参数传递,但不断收到“getVal”的名称错误。这是“getVal”函数或我试图传递的参数的问题吗? “self.Volume”是一个数字列表,“self.num”是一个二进制数字列表。

def getVal(self, solution):
    return [self.volume[i] for i in range(10) if solution[i]] 

def fitness(self): 
    print(getVal(self.num))

【问题讨论】:

标签: python function class attributes instance


【解决方案1】:

由于getVal()fitness() 是类函数,您需要使用self. 调用它们:

def fitness(self): 
    print(self.getVal(self.num))

【讨论】:

    【解决方案2】:

    如果这是在一个类中,那么您必须通过self.getVal() 引用该方法。在 Python 中,如果您调用实例的方法,实例将作为第一个参数传入,按照约定命名为 self。所以要调用这个方法,你必须要么ClassName.getVal(self, self.num)要么self.getVal(self.num)

    【讨论】:

      【解决方案3】:

      关闭。您需要确保在调用类函数之前输入self.。并且不需要将self.num 传递给getVal 你可以从getVal 内部调用它

      def getVal(self):
          return [self.volume[i] for i in range(10) if self.num[i]] 
      
      def fitness(self): 
          print(self.getVal())
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-21
        • 1970-01-01
        • 2019-04-28
        相关资源
        最近更新 更多