[英]Making a 2d list of objects (Python 2.7)
我没有面向对象编程的经验。 我主要使用C进行编程,因此这有点令人困惑。 基本上,我只是想确保自己做的正确。 另外,这是继承的可行示例吗?
好的,我已经初始化了20x20的网格世界,并将每个元素设置为None。
class World:
def __init__(self):
self.arr = [[None for x in range(20)] for y in range(20)]
现在,我需要将一个对象放入给定的x,y坐标的指定元素中。 这是世界一流的方法。
def add_attack_robot(self, team, x, y, direction):
self.arr[x][y] = AttackRobot() <---- **Is this correct?**
这是AttackRobot类:
class AttackRobot(Robot):
def __init__(self,team,x,y,direction):
Robot.__init__(self,team,x,y,direction)
创建列表列表听起来不错。 在解释器中自己尝试一下(有关新Python程序员可以采取的最佳建议):
>>> [[None for x in range(20)] for y in range(20)]
[[None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]]
当您尝试实例化AttackRobot
,您将看到以下内容:
TypeError: __init__() takes exactly 5 arguments (1 given)
传递team
, x
, y
和direction
有效值( self
是隐式的),您应该已设置好!
例如:
self.arr[x][y] = AttackRobot(team, x, y, direction)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.