有没有一种简单的方法可以将类中的变量全球化

时间:2018-09-01 18:42:17

标签: python python-3.x function class global

我想知道是否有一种简单的方法可以在python类中全局化变量。我在下面尝试此示例,但收到以下错误消息:

UnboundLocalError:分配前已引用局部变量“ gold”

我不想在每个函数中键入'global gold'。

gold = 10
class economy:
    global gold

   def income(self):
        gold+=5

    def expense(self):
        gold-=5

2 个答案:

答案 0 :(得分:0)

最好把黄金放在课堂上

class economy:
    def __init__(self, gold):
        self.gold = gold
    def income(self):
        self.gold+=5
    def expense(self):
        self.gold-=5

a = economy(90)
a.income()
a.gold # 95
a.expense()
a.gold() #90

答案 1 :(得分:-2)

该类中最易访问的变量是属性,要在类之外使用它,您可以创建一个getVariable函数,如下所示:

gold = 10

class economy:
   gold = None 

   def __init__(self,gold) :
        self.gold = gold 

   def income(self):
        self.gold+=5

    def expense(self):
        self.gold-=5

    def getGold(self) :
        return self.gold

# to get the gold value from the object :
gold = economy(gold).getGold()