如何创建一个调用另一个函数并将实例属性作为参数传递的函数?

How can I create a function that calls another function and passes in an instance attribute as an argument?

我对编码还很陌生,对如何从一个函数调用另一个函数感到很困惑。我正在尝试将实例属性作为参数传递,但一直收到 '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))

因为 getVal()fitness() 是 class 函数,你需要用 self.:

来调用它们
def fitness(self): 
    print(self.getVal(self.num))

如果在 class 内,则必须通过 self.getVal() 引用该方法。在 Python 中,如果您调用它的方法,实例将作为第一个参数传入,按照惯例命名为 self。所以要调用该方法,您必须执行 ClassName.getVal(self, self.num)self.getVal(self.num).

关闭。您需要确保在调用 class 函数之前放置 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())