Python:从类实例中访问变量的最佳方法?

问题描述:

我有一个类玩家,这个类将有200-300个实例。这个类中有一个功能叫做移动,这个功能需要知道地图。Python:从类实例中访问变量的最佳方法?

我也有一个类地图与1-2个实例。提供地图玩家实例的最佳方式是什么?

我只问,因为如果我将其提供给玩家时的例如初始化,所以我可以访问通过self.map实例 - 不就是为每个实例创建数百地图实例的副本(一个播放器)?

对于我所知道的这可能是这样做的标准方式,但我有一个唠叨的感觉,这是不适当的。

感谢

如果你通过了MapPlayer在Init这只是传递一个参考,而不是一个副本。您不会通过这种方式创建Map的冗余实例,并且这是实现它的最佳方式。

Python中的任何内容都不会被隐式复制。无论何时你做x = y,无论是函数调用还是变量/元素/属性分配,xy之后都会引用同一个对象。

我看到两个缺陷与你的计划,但:

  • 会在地图也知道球员?如果是这样,你手上会有很多循环引用。相反,只需将地图传递给move()即可。
  • 让地图本身或其他丰富的“游戏逻辑”类处理实际移动似乎更合适。 (虽然我不是游戏开发者,但我的直觉只不过是在地图上的东西不应该到达自身之外并自行移动。)
+0

地图上的东西可以询问或告诉地图来移动它。 – martineau 2011-05-28 09:36:04