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