尝试访问同一类(python)中的2d列表时出现`AttributeError`

时间:2017-08-14 03:23:29

标签: python

我的程序代码在这里:Why am I getting this error "NameError:name 'self' is not defined."

我得到的错误如下:

Traceback (most recent call last):
  File "sudoku_maker.py", line 51, in <module>
    p.main()
  File "sudoku_maker.py", line 44, in main
    self.createEasy()
  File "sudoku_maker.py", line 16, in createEasy
    if (self.puzzle[i][j] != 0):
AttributeError: 'Puzzle' object has no attribute 'puzzle'

我能看出为什么会发生这种错误的唯一原因是因为列表只在init函数中声明但是我把它放在那里因为我在这里看到另一个答案就是这样说。我要回答的问题是如何为类变量问这个问题,但我没有足够的代表,然后我发现另一个问题,回答者说只在init函数中声明一个列表。

1 个答案:

答案 0 :(得分:0)

为什么没有将Toast t = new Toast(getContext()); t.setDuration(Toast.LENGTH_SHORT); t.setText(message); t.setGravity(Gravity.CENTER, 0, 0); t.show(); 初始化为实例变量?实际上,它只是一个局部变量。你需要:

puzzle

def __init__(self, **puzzle): self.puzzle = [[0 for x in range(9)]for y in range(9)] 是您的实例,self将生成self.x = ...,一个实例变量,并且可以作为x的属性进行访问。