创建Python对象的最佳位置在哪里?

时间:2018-10-23 09:19:06

标签: python-3.x

因此,我正在用Python编写基于OOP的程序,我想问:创建对象的最佳位置在哪里?假设我的程序中有这个对象。

class Player(Item):
    def __init__(self,Name,Diff,Money,Experience):
        self.name = Name
        self.diff = Diff
        self.money = Money
        self.experience = Experience

但是我也有主打游戏。我应该在类游戏中还是在所有类之外创建玩家对象,以使其具有全局性?我不知道应该在哪里制作它,这样我就可以在需要时访问它。

1 个答案:

答案 0 :(得分:0)

您正在谈论在哪里定义一个类;这是一个风格问题。让我们看看Style Guide for Python Code (PEP 8)对此有何评论:

  

用两个空行包围顶级函数和类定义。

好吧...不太有用,因为现在我必须使用自己的知识来回答问题。嗯...

嗯,我想这取决于您要说的内容。如果你有这个:

class Game:
    class Player:
        def __init__(self, name, difficulty, money=0, experience=0):
            self.name = name
            self.difficulty = difficulty
            self.money = money
            self.experience = experience

然后,这表明如果您更改Game实现,则必须更改Player实现,并且不更改{{1 }}实现;即它们紧密耦合。因此,代码可能会像这样进行:

Player

这不是编程的好方法;一切都绑在一起,这是一个很大的纠结。是什么原因造成的?相反,我会有更多类似的东西:

Game

这是粗糙且设计不当的,但您可以理解。每件事都负责处理自己的东西。确实,世界应该负责检查是否所有玩家都已死亡,但是由于它没有单独存储玩家,因此我无法在示例中说明这一点。