我如何创建一个函数来调用另一个函数,并将一个实例属性作为参数传入?

问题描述 投票:0回答:2

我是一个相当新的编码者,我对如何从另一个函数中调用一个函数感到非常困惑。我试图传递一个实例属性作为参数,但一直得到一个'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
2个回答
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())

5
投票

自从 getVal()fitness() 是类函数,你需要用 self.:

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

4
投票

如果这是在一个类中,那么你必须通过 self.getVal(). 在Python中,如果你调用它的方法,实例是作为第一个参数传入的,它的名字是 self 惯例。所以要调用该方法,你必须要做的是 ClassName.getVal(self, self.num)self.getVal(self.num).

© www.soinside.com 2019 - 2024. All rights reserved.