Python 为什么tkinter radiobutton中未设置默认值?

Python 为什么tkinter radiobutton中未设置默认值?,python,tkinter,radio-button,Python,Tkinter,Radio Button,下面的代码将遍历字典中的名称列表,然后创建单选按钮。在迭代之前,设置/初始化默认值。几乎相同的代码是以不同的方式设置的,默认值没有设置,并且不确定我缺少了什么。任何协助都将不胜感激 工作代码 非工作副本 问题可能是因为类中的v是局部变量,它在结束方法单选按钮时被销毁。使用self.保存它 self.v = IntVar() self.v.set(1) for method, value in methods: b = Radiobutton(root

下面的代码将遍历字典中的名称列表,然后创建单选按钮。在迭代之前,设置/初始化默认值。几乎相同的代码是以不同的方式设置的,默认值没有设置,并且不确定我缺少了什么。任何协助都将不胜感激

工作代码

非工作副本


问题可能是因为类中的
v
是局部变量,它在结束方法
单选按钮时被销毁。使用
self.
保存它

    self.v = IntVar()
    self.v.set(1)

    for method, value in methods:
        b = Radiobutton(root, text=method, variable=self.v, value=value)
        _row += 1
        b.grid(row=_row, column=0, sticky=W)

问题可能是因为类中的
v
是局部变量,它在结束方法
单选按钮时被销毁。使用
self.
保存它

    self.v = IntVar()
    self.v.set(1)

    for method, value in methods:
        b = Radiobutton(root, text=method, variable=self.v, value=value)
        _row += 1
        b.grid(row=_row, column=0, sticky=W)

我真的很感激你的评论,你是对的。我真的很感激你的评论,你是对的。这解决了问题。我相信pycharm错误地告诉我变量在def ini之外。这就解决了问题。我相信pycharm错误地告诉我变量在defini之外。
    self.v = IntVar()
    self.v.set(1)

    for method, value in methods:
        b = Radiobutton(root, text=method, variable=self.v, value=value)
        _row += 1
        b.grid(row=_row, column=0, sticky=W)