【问题标题】:Python: Best way to access variable from within a class instance?Python:从类实例中访问变量的最佳方式?
【发布时间】:2011-05-28 04:20:30
【问题描述】:

我有一个名为 Player 的类,该类将有 200-300 个实例。在这个类中有一个名为 Move 的函数,该函数需要了解地图。

我还有一个名为 Map 的类,其中包含 1-2 个实例。将 Map 实例馈送到 Player 实例的最佳方式是什么?

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

据我所知,这可能是执行此操作的标准方式,但我总觉得这不合适。

谢谢

【问题讨论】:

    标签: python oop class variables


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      • 地图也会知道玩家吗?如果是这样,你手上会有很多循环引用。只需将地图传递给 move()
      • 让地图本身或其他一些丰富的“游戏逻辑”类来处理实际移动似乎更合适。 (不过,我不是游戏开发者;我的直觉是,地图上的东西不应该超出自身之外并自行移动。)

      【讨论】:

      • 地图上的东西可以要求或告诉地图移动它。
      猜你喜欢
      • 2022-08-11
      • 2021-06-03
      • 2017-03-20
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      相关资源
      最近更新 更多