【问题标题】:Python how to share an object between methods in a class?Python如何在类中的方法之间共享对象?
【发布时间】:2017-01-29 15:38:37
【问题描述】:

我正在制作一个需要在一个类中的多个方法之间共享一个对象的游戏,我遇到的问题是,即使对象已经创建,方法也无法识别该对象。这是我所说的一个例子:

import Economy

Class Example:
    economy = Economy.Economy()

    def __init__(self, test):
        self.test = test
    def exampleMethod1(self):
        economy.getMoney()
    def exampleMethod2(self)
        economy.addMoney(1)

Python 在方法中给我一个错误并说该对象不存在。

【问题讨论】:

  • 应该是self.economy.getMoney()Example.economy.getMoney();这是一个类属性,它不在全局范围内。还有'Class' != 'class'.

标签: python class object methods


【解决方案1】:

您可以使用self 对象在类的方法之间共享对象。您的代码将变为:

import Economy

Class Example:
    economy = Economy.Economy()

    def __init__(self, test):
        self.test = test
    def exampleMethod1(self):
        self.economy.getMoney()
    def exampleMethod2(self)
        self.economy.addMoney(1)

希望对你有所帮助。

【讨论】:

  • 这会为每个实例创建一个单独的 Economy.Economy 实例。
  • 根本不要进入__init__。将定义留在原处; self 可以很好地访问类属性,只要您不重新分配它们,它们就仍然是类属性。在每个实例上创建一个全局属性作为属性是错误的。
  • 对不起,我已经有一段时间没有使用类了。感谢您的意见,我已经更新了答案。
猜你喜欢
  • 2011-04-20
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多