繁体   English   中英

制作二维对象列表(Python 2.7)

[英]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)

传递teamxydirection有效值( self是隐式的),您应该已设置好!

例如:

self.arr[x][y] = AttackRobot(team, x, y, direction)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM