繁体   English   中英

Python:从 class 实例中访问变量的最佳方式?

[英]Python: Best way to access variable from within a class instance?

我有一个名为Player的 class,这个 class 将有 200-300 个实例。 在此 class 中有一个 function,称为Move ,此 function 需要了解 Z1D78DC8ED51214E9AEZ524B。

我还有一个名为Map的 class 有 1-2 个实例。 Map实例输入Player实例的最佳方法是什么?

我只是问,因为如果我在 Player初始化时将它提供给实例,这样我就可以通过 self.map 访问该实例 - 这不会创建 Map 实例的数百个副本(每个 Player 实例一个)?

据我所知,这可能是这样做的标准方式,但我有一种不合适的感觉。

谢谢

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

Python 中的任何内容都不会被隐式复制。 每当您执行x = y时,无论是 function 调用还是变量/元素/属性赋值, xy之后都指的是同一个 object。

不过,我发现您的计划存在两个缺陷:

  • map 是否也了解玩家? 如果是这样,你手上会有很多循环引用。 只需将 map 传递给move()即可。
  • 让 map 本身或其他一些丰富的“游戏逻辑”class 来处理实际运动似乎更合适。 (不过,我不是游戏开发者;我的直觉是,map 上的东西不应该伸到自己外面并四处移动。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM