![](/img/trans.png)
[英]compilation error. AttributeError: 'module' object has no attribute 'init'
[英]Minesweeper: Python error. AttributeError: type object has no attribute
我对编码很陌生,并且在访问另一个对象内部的对象属性时遇到了麻烦。 我已经尝试明确创建一个方法来返回属性,但不要等待。 我似乎无法在网上找到一个好的解释。
我正在编写的代码的最终目标是模拟扫雷游戏。 为此,我创建了一个名为 minefield 的类。
class Minefield:
def __init__(self, height, width, bombs):
self.height = height
self.width = width
self.bombs = bombs
self.flagged_amount = 0
self.minefield = []
self.setup_minefield()
def setup_minefield(self): # setup for the minefield
for x in range(self.height):
self.minefield.append([])
for y in range(self.width):
self.minefield[x].append(Cell)
以及一个名为 Cell 的类
class Cell:
def __init__(self): # setup for new cell
self.revealed = False
self.bomb = False
self.flag = False
self.nearby_bombs = 0
现在,我遇到的问题是,当我尝试访问雷区中单元格的属性时,出现错误:AttributeError: type object 'Cell' has no attribute 'flag'
我现在尝试使用这些类运行的代码(导致错误)非常简单(见下文),但我将需要在程序稍后的许多计划功能中使用这些属性。
my_minefield = Minefield(5, 5, 2)
if my_minefield.minefield[1][1].flag:
print ("yay")
我不确定为什么这不起作用,并且非常感谢任何有助于理解该问题的帮助。 谢谢!
这里:
self.minefield[x].append(Cell)
您正在附加Cell
类,而不是它的实例。 您必须通过调用它来实例化该类:
self.minefield[x].append(Cell())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.