【问题标题】:Accessing a variable inside the method of a class访问类方法中的变量
【发布时间】:2023-04-01 06:24:01
【问题描述】:

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

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

所以我需要在课堂外访问TotalAmount,但我不知道该怎么做。

【问题讨论】:

    标签: python function class tkinter local


    【解决方案1】:

    您可以简单地在 __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
    

    【讨论】:

    • Link to my code 那是我的代码,我知道它效率极低且混乱,但我只是想让这一部分工作。你或其他人可以看看吗?
    【解决方案2】:

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

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

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

    【讨论】:

    • 链接到我的代码 那是我的代码,我知道它效率极低且混乱,但我只是想让这一部分工作。你或其他人可以看看吗?
    猜你喜欢
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多