manually maintained state toggles are updated on every button press and are printed when the gui exits (technicallywhen the mainloop call returns)it' list of boolean state valueswhich could also be integers or if we cared to exactly imitate the originalc:\pp \gui\tourpython demo-check-manual py [falsefalsetruefalsetruefalsefalsefalsetruefalsethis worksand it isn' too horribly difficult to manage manually but linked tkinter variables make this task noticeably easierespecially if you don' need to process check button states until some time in the future this is illustrated in example - example - pp \gui\tour\demo-check-auto py check buttonsthe easy way from tkinter import root tk(states [for in range( )var intvar(chk checkbutton(roottext=str( )variable=varchk pack(side=leftstates append(varroot mainloop(let tkinter keep track print([var get(for var in states]show all states on exit (or map/lambdathis looks and works the same waybut there is no command button-press callback handler at allbecause toggle state is tracked by tkinter automaticallyc:\pp \gui\tourpython demo-check-auto py [ the point here is that you don' necessarily have to link variables with check buttonsbut your gui life will be simpler if you do the list comprehension at the very end of this scriptby the wayis equivalent to the following unbound method and lambdabound-method map call formsprint(list(map(intvar getstates))print(list(map(lambda varvar get()states))though comprehensions are common in python todaythe form that seems clearest to you may very well depend upon your shoe size checkbuttonradiobuttonand scale