我有一个名为 Player 的课程,此课程将有200-300个实例。此类中有一个名为移动的函数,此函数需要知道地图。
我还有一个名为 Map 的类,有1-2个实例。将地图的实例提供给播放器实例的最佳方式是什么?
我只是问,因为如果我将它提供给Player init 上的实例,那么我可以通过self.map访问该实例 - 不会创建数百个Map实例的副本(一个对于玩家的每个实例)?
就我所知,这可能是标准的做法,但我有一种唠叨的感觉,这是不恰当的。
由于
答案 0 :(得分:1)
如果您在初始时将Map
传递给Player
,则只传递参考,而不是副本。您不会以这种方式创建Map
的冗余实例,这是最好的方法。
答案 1 :(得分:1)
Python中没有任何内容被隐式复制。无论何时执行x = y
,无论是函数调用还是变量/元素/属性赋值,x
和y
都会引用相同的对象。
我看到你的计划存在两个陷阱:
move()
即可。