私は、Tkinter モジュールを使用した非常に基本的な GUI プログラミングの初心者です。別のウェブページからソースコードをコピーしたプログラムを実行してみました。
from Tkinter import *
def sel():
selection = "You selected the option " + str(var.get())
label.config(text = selection)
root = Tk()
var = IntVar()
R1 = Radiobutton(root, text="Option 1", variable=var, value=1,
command=sel)
R1.pack( anchor = W )
R2 = Radiobutton(root, text="Option 2", variable=var, value=2,
command=sel)
R2.pack( anchor = W )
R3 = Radiobutton(root, text="Option 3", variable=var, value=3,
command=sel)
R3.pack( anchor = W)
label = Label(root)
label.pack()
root.mainloop()
関数内のグローバルオブジェクトにアクセスするときはいつでも、
global object_name
それ以外の場合、関数はローカル変数の独自のコピーを作成します。では、関数 sel() の定義で同じことをしてみませんか? sel() の定義に次のステートメントを追加してみました。また、
global label
global var
プログラムを実行しましたが、プログラムの動作に違いはありませんでした。何故ですか?