Tkinter Radiobutton实例没有attibute';变量

Tkinter Radiobutton实例没有attibute';变量,tkinter,radiobuttonfor,Tkinter,Radiobuttonfor,我尝试使用单选按钮为用户提供一组选择。当我单击“获取数据类型”按钮时,Python返回“AttributeError:Radiobutton实例没有属性'variable'。很明显它有,但拒绝看到它(它们): 您误解了tkinter选项。当您指定像variable=data\u contents这样的属性时,它不会成为对象的属性。相反,它是一个小部件配置选项 要访问变量的值配置选项,您需要使用以下选项之一: self.radiobutton.cget("variable") self.radio

我尝试使用单选按钮为用户提供一组选择。当我单击“获取数据类型”按钮时,Python返回“AttributeError:Radiobutton实例没有属性'variable'。很明显它有,但拒绝看到它(它们):


您误解了tkinter选项。当您指定像
variable=data\u contents
这样的属性时,它不会成为对象的属性。相反,它是一个小部件配置选项

要访问
变量的值
配置选项,您需要使用以下选项之一:

self.radiobutton.cget("variable")
self.radiobutton["variable"]
注意:这个问题走错了方向。您不需要获取变量,因为您可以控制变量是什么。变量应该是一个实例属性,您可以在该属性上调用
get()
方法:

...
self.data_contents = StringVar()
...
def write_data(self):
    print(self.data_contents.get())

好的。谢谢。你的回答引出了一个问题:什么小部件配置选项是变量?当我设置变量=数据内容时,配置了什么?当我添加以下任一项时:
self.radiobutton.cget(“变量”)
self.radiobutton[“变量”]
,我得到
PY\u VAR0
@MrPacket:我不确定我是否理解你的问题。当你执行
variable=data\u contents
时,小部件的
variable
选项被设置。它不是一个实例属性,而是一个配置选项。
self.radiobutton[“variable”].get()
给出了以下内容:
AttributeError'\u tkinter.Tcl\u Obj'对象没有属性“get”
我得到了它。我实际上想访问
属性。
self.radiobutton.cget(“value”)
成功了。谢谢!!
...
self.data_contents = StringVar()
...
def write_data(self):
    print(self.data_contents.get())