在python中传递引用的替代方法

时间:2013-10-17 10:51:54

标签: python oop design-patterns

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

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

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

例如:

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

mycollisiondetector = CollisionDetector()

mycollisiondetector.check_collision(spritelist)

然后,在CollisionDetector类中,spritelist被传递给类的“私有”方法。这些私有方法调用其他方法,并继续传递spritelist ....

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

1 个答案:

答案 0 :(得分:1)

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

如果您反复传递了许多引用,这通常是错误的类层次结构设计的指示器。您可能需要考虑子类化,或为变量定义新类并传递对它的引用。细节将取决于您的具体情况 - 如果没有看到代码,很难说清楚。