with the same tkinter variable and have distinct value settings to truly understand whythoughyou need to know bit more about how radio buttons and variables do their stuff we've already seen that changing widget changes its associated tkinter variableand vice versa but it' also true that changing variable in any way automatically changes every widget it is associated with in the world of radio buttonspressing button sets shared variablewhich in turn impacts other buttons associated with that variable assuming that all radio buttons have distinct valuesthis works as you expect it to work when button press changes the shared variable to the pressed button' valueall other buttons are deselectedsimply because the variable has been changed to value not their own this is true both when the user selects button and changes the shared variable' value implicitlybut also when the variable' value is set manually by script for instancewhen example - sets the shared variable to the last of the demo' names initially (with self var set)it selects that demo' button and deselects all the others in the processthis wayonly one is selected at first if the variable was instead set to string that is not any demo' name ( ')all buttons would be deselected at startup this ripple effect is bit subtlebut it might help to know that within group of radio buttons sharing the same variableif you assign set of buttons the same valuethe entire set will be selected if any one of them is pressed consider example - which creates figure - for instance all buttons start out deselected this time (by initializing the shared variable to none of their values)but because radio buttons and have value (the remainder of division by )all are selected if any are selected figure - radio buttons gone badexample - pp \gui\tour\demo-radio-multi py see what happens when some buttons have same value from tkinter import root tk(var stringvar(for in range( )rad radiobutton(roottext=str( )variable=varvalue=str( )rad pack(side=leftvar set('deselect all initially root mainloop( tkinter tourpart