我是一个相当新的编码者,我对如何从另一个函数中调用一个函数感到非常困惑。我试图传递一个实例属性作为参数,但一直得到一个'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))
关闭。你需要确保你把 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())
自从 getVal()
和 fitness()
是类函数,你需要用 self.
:
def fitness(self):
print(self.getVal(self.num))
如果这是在一个类中,那么你必须通过 self.getVal()
. 在Python中,如果你调用它的方法,实例是作为第一个参数传入的,它的名字是 self
惯例。所以要调用该方法,你必须要做的是 ClassName.getVal(self, self.num)
或 self.getVal(self.num)
.