访问类方法中的变量

时间:2015-05-27 09:57:03

标签: python function class tkinter local

我正在使用Tkinter / Python创建预算程序。这是我的代码的基础:

class Expense:
  def __init__(self):
    def Save(self)
       TotalAmount = blah

所以我需要在班级之外访问TotalAmount,但我不确定如何解决这个问题。

2 个答案:

答案 0 :(得分:3)

您可以在__init__()方法中创建一个变量,在初始化类时立即调用该变量,然后您可以更改将在类外部反映的变量值。

您似乎正在尝试为类创建方法save(),所以我也为您做了同样的事情。如果您不希望您的save()方法接受任何参数,那么您也可以使用def save(self):

class Expense:
    def __init__(self):
        #Do some initializations here
        self.TotalAmount = 0
    def save(self, amount):
        self.TotalAmount = amount


exp = Expense()
print exp.TotalAmount
>>> 0
exp.save(10)
print exp.TotalAmount
>>> 10

答案 1 :(得分:0)

您需要将变量添加为对象的属性(self.TotalAmount = blah)或将其设为global变量:

class Expense:
  def __init__(self):
    def Save(self)
       global TotalAmount
       TotalAmount = blah

第一个解决方案是首选解决方案,因为拥有大量全局变量会使您的代码难以阅读。您应该努力encapsulation,因为它使将来更容易维护代码(更改代码的一部分不太可能破坏其他部分)。