1

我对 python 和 oop 比较陌生,我对我的爱好项目的代码设计有疑问。

我在主程序中创建了很多变量。这些变量是对象列表(不是配置参数,也不是常量)。列表中的对象是精灵。

我在对象之间传递这些变量,方法是调用方法并将变量作为特定方法的参数传递。(通过引用)

例如:

spritelist = [Sprite(...), Sprite(..)]

mycollisiondetector = CollisionDetector()

mycollisiondetector.check_collision(spritelist)

然后,在 CollisionDetector 类中,将 spritelist 传递给该类的“私有”方法。这些私有方法调用其他方法,并不断传递 spritelist ... 。

所以,我的问题就是这样:有没有一种替代方法可以将变量从一种方法无休止地传递到另一种方法?

4

1 回答 1

2

如果您正在处理实例变量(而不是配置常量),那么将变量分隔到一个模块(不同的文件)中被认为是不好的做法,因为您正在混合实例状态和全局状态。

如果您有很多引用被反复传递,这通常表明类层次结构设计不佳。您可能需要考虑子类化,或为变量定义一个新类并传递对它的引用。细节取决于你的具体情况——不看代码很难说。

于 2013-10-17T11:23:47.813 回答