【发布时间】:2023-04-01 06:24:01
【问题描述】:
我正在使用 Tkinter/Python 创建预算程序。这是我的代码的基础:
class Expense:
def __init__(self):
def Save(self)
TotalAmount = blah
所以我需要在课堂外访问TotalAmount,但我不知道该怎么做。
【问题讨论】:
标签: python function class tkinter local
我正在使用 Tkinter/Python 创建预算程序。这是我的代码的基础:
class Expense:
def __init__(self):
def Save(self)
TotalAmount = blah
所以我需要在课堂外访问TotalAmount,但我不知道该怎么做。
【问题讨论】:
标签: python function class tkinter local
您可以简单地在 __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
【讨论】:
您需要将变量作为属性添加到对象 (self.TotalAmount = blah) 或使其成为 global 变量:
class Expense:
def __init__(self):
def Save(self)
global TotalAmount
TotalAmount = blah
第一个解决方案是首选解决方案,因为拥有大量全局变量会使您的代码难以阅读。您应该争取encapsulation,因为它使以后的代码维护更容易(更改代码的一部分不太可能破坏其他部分)。
【讨论】: