修改原问题以防混淆。我在两个不同的模块中定义了两个类:
class Heuristic:
def process(self,data,x,y):
processed_data = (data + x) /y
return processed_data
class GTS(Abstract_Strat):
def __init__(self, data, method= Heuristic().process(),*args):
self.data= data
self.method = method
self.func_args = args
所以在类GTS中,在初始化函数中,我试图传递一个属于另一个模块中的类启发式的方法。尝试此操作时,出现以下错误:
TypeError: process() takes exactly 3 arguments (1 given)
我搜索了stackoverflow,并在Typerror
引用_init_
方法的地方找到了类似的问题。但在本例中,错误是作为参数传递给_init_
方法的函数。所以问题是-将一个类的方法作为默认参数值传递给另一个类的初始化器的正确方法是什么?你知道吗
通过将
Heuristic().process()
更改为Heuristic().process
作为函数参数的默认值传递,我解决了上面修改的问题中提到的问题。你知道吗我还要感谢安德鲁对问题原版的评论。你知道吗
在python中,必须先构造类的实例,然后才能访问对象及其方法。你知道吗
你可以这样做:
从而构造对象并访问其“绑定”方法。它引用的第一个参数是定义中的“self”,在初始化类的实例之前,您无权访问它。你知道吗
相关问题 更多 >
编程相关推荐