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

问题描述

| 我有一个名为Player的类,它将有200-300个此类的实例。此类中有一个称为Move的函数,该函数需要了解地图。 我也有一个名为Map的类,具有1-2个实例。将Map实例输入到Player实例的最佳方法是什么? 我只是问,因为是否在Player初始化时将其馈送到实例,以便我可以通过self.map访问该实例-这样会不会创建数百个Map实例副本(每个Player实例一个)? 就我所知,这可能是执行此操作的标准方式,但我a不安地认为这样做不合适。 谢谢     

解决方法

        如果您在初始时将
Map
传递给ѭ1this,则仅传递参考,而不是副本。您不会以这种方式创建ѭ0的冗余实例,这是做到这一点的最佳方法。     ,        Python中没有任何内容被隐式复制。每当您执行
x = y
时,无论是函数调用还是变量/元素/属性赋值,
x
y
都将引用同一对象。 不过,我发现您的计划有两个陷阱: 地图还会知道玩家吗?如果是这样,您手上将有很多循环引用。只需将地图传递给
move()
即可。 让地图本身或其他一些丰富的“游戏逻辑”类处理实际的运动似乎更合适。 (不过,我不是游戏开发者;我的直觉是,地图上的任何东西都不应伸到自身外部并四处走动。)