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

时间:2011-05-28 04:20:31

标签: python oop class variables

我有一个名为 Player 的课程,此课程将有200-300个实例。此类中有一个名为移动的函数,此函数需要知道地图。

我还有一个名为 Map 的类,有1-2个实例。将地图的实例提供给播放器实例的最佳方式是什么?

我只是问,因为如果我将它提供给Player init 上的实例,那么我可以通过self.map访问该实例 - 不会创建数百个Map实例的副本(一个对于玩家的每个实例)?

就我所知,这可能是标准的做法,但我有一种唠叨的感觉,这是不恰当的。

由于

2 个答案:

答案 0 :(得分:1)

如果您在初始时将Map传递给Player,则只传递参考,而不是副本。您不会以这种方式创建Map的冗余实例,这是最好的方法。

答案 1 :(得分:1)

Python中没有任何内容被隐式复制。无论何时执行x = y,无论是函数调用还是变量/元素/属性赋值,xy都会引用相同的对象。

我看到你的计划存在两个陷阱:

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