簡體   English   中英

在其他函數中設置全局變量

[英]Set a global variable in other function

我正在嘗試設置在“ on_button”函數中計算的面積和周長變量的值,並在標簽中使用它們。 我對在代碼中使用global感到困惑,因為有人說它不好。

import Tkinter as tk

class SampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.area = 0
        self.widthLabel = tk.Label(self, text="Width:")
        self.widthLabel.grid(row=0, column=0)

        self.widthEntry = tk.Entry(self)
        self.widthEntry.grid(row=0, column=1)

        self.heightLabel = tk.Label(self, text="Height:")
        self.heightLabel.grid(row=1, column=0)

        self.heightEntry = tk.Entry(self)
        self.heightEntry.grid(row=1, column=1)

        #self.areaValLabel = tk.StringVar()
        #self.areaValLabel.set(0)

        self.areaLabel = tk.Label(self, text="Area:").grid(row=3, column=0)
        self.areaValLabel = tk.Label(self, textvariable=self.area).grid(row=3, column=1)

        self.PerLabel = tk.Label(self,text="Perimeter:").grid(row=4, column=0)
        #self.perValLabel =tk.Label(self, text=perimeter).grid(row=4, column=1)

        self.button = tk.Button(self, text="Calculate", command=self.on_button).grid(row=2, column=0)

def on_button(self):
        print self.widthEntry.get()
        print self.heightEntry.get()
        width = self.widthEntry.get()
        height = self.heightEntry.get()
        print float(width)*float(height)
        self.area.set(float(width)*float(height))


app = SampleApp()
app.title("HW1")
app.mainloop()

您可以像這樣訪問變量:

self.area.set(float(self.width)*float(self.height))

即使在外面,您也可以執行以下操作:

object.width

獲取參數的值。 不需要全局:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM