因此,它说第11行中的create
没有定义,但它是类中的递归函数。在VS代码中,它在第6行显示了一个错误-它说我缺少self
参数,但是当我添加它时,它在第23行需要3个参数(为什么,我不能为self
提供参数,对吗?)在
我已经尝试过在参数中添加self
的各种变体,但是没有任何效果。在
class smarray:
def __init__ (self):
self.array = []
def create(index, dim):
array1 = []
if index < len(dim)-1:
for x in range(0,dim[index]):
array1.append((create(index+1,dim)))
return array1
else:
for x in range(0,dim[index]):
array1.append("nul")
return array1
if index ==0:
self.array = array1
t = smarray()
t = smarray.create(0, [3,4])
错误TB:
^{pr2}$
要运行此代码段,需要修复以下几点:
因此,第一个修复方法是将
self
关键字添加到def create()
方法签名中。在第二,在
array1.append(...)
行中必须添加相同的self
关键字,因此我们可以正确地调用create
方法:self.create()
最后一次我将对
create
方法的调用改为“instance method”,而不是“class method”—我希望我能正确理解您在这里试图实现的目标。您可以阅读更多here。在请注意,最后一个
if index==0
是不可访问的,因此代码self.array = array1
永远不会执行。我不太清楚你想在那里取得什么成就。在相关问题 更多 >
编程相关推荐