如何在Python中组织类?

时间:2012-10-26 00:01:13

标签: python python-3.x

我遇到了一个问题,我认为答案非常简单,但很难在简短的Google搜索中解释,我找不到任何关于此主题的内容。

所以,在我最近一直在努力的游戏中,我为游戏中的每个块/牌都有多种类型的对象:

    class Char(object):
        ...
        def update(self):
            ...
        def move(self, direction):
            ...

    class Dirt(object):
        ...

显然,在主程序中定义所有这些类可能非常凌乱,例如,如果我想在游戏中创建一个名为“screen”的对象,那该怎么办?计算机屏幕),这将与我的屏幕类冲突,用于实际的游戏窗口。而且,创建第二个名为gameObjects的模块也会导致我的所有游戏对象无法访问main中定义的变量的问题。

那么,我如何组织或分组我的班级?我是初学者进入Python,所以一个简单的答案将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:3)

您通常不希望拥有与您的类名称相同的对象。如果它们没有在同一范围内定义,实际上并没有冲突,但它仍然令人困惑。

但是,如果您遵循典型的Python命名约定,这将不会成为问题:您的类以大写字母开头,而您的变量以小写字母开头。因此,您的变量称为screen,并且您有一个名为Screen的类并不重要。

同时,您可能希望将相关类放在一个模块中。在gameObjects模块中定义的类的对象将无法访问main中定义的变量,但您不希望它们访问。全局变量几乎总是一个坏主意。如果对象需要访问变量,请将该变量传递给其构造函数。

在创建自己的大型项目之前,您应该查看其他一些大型项目,看看他们如何组织事物。