Original file line numberDiff line numberDiff line change@@ -559,6 +559,14 @@ Porting to Python 3.16
559559This section lists previously described changes and other bugfixes
560560that may require changes to your code.
561561562+* In :mod:`tkinter`, the *name* parameter of the
563+:meth:`~tkinter.Misc.wait_variable`, :meth:`~tkinter.Misc.setvar` and
564+:meth:`~tkinter.Misc.getvar` methods and the *value* parameter of
565+:meth:`!setvar` are now required. Calling these methods without
566+ them, which formerly defaulted to ``'PY_VAR'`` and ``'1'``, now raises
567+:exc:`TypeError`.
568+ (Contributed by Serhiy Storchaka in :gh:`152587`.)
569+562570563571Build changes
564572=============
Original file line numberDiff line numberDiff line change@@ -367,6 +367,10 @@ def test_getdouble(self):
367367deftest_getvar(self):
368368self.root.setvar('test_var', 'hello')
369369self.assertEqual(self.root.getvar('test_var'), 'hello')
370+# The name and value are required (gh-152587).
371+self.assertRaises(TypeError, self.root.getvar)
372+self.assertRaises(TypeError, self.root.setvar)
373+self.assertRaises(TypeError, self.root.setvar, 'test_var')
370374371375deftest_register(self):
372376result= []
@@ -598,6 +602,8 @@ def test_wait_variable(self):
598602self.root.after(1, var.set, 'done')
599603self.root.wait_variable(var) # Returns once the variable is set.
600604self.assertEqual(var.get(), 'done')
605+# The name is required (gh-152587).
606+self.assertRaises(TypeError, self.root.wait_variable)
601607602608deftest_wait_window(self):
603609top=tkinter.Toplevel(self.root)
Original file line numberDiff line numberDiff line change@@ -818,7 +818,7 @@ def tk_inactive(self, reset=False, *, displayof=0):
818818else:
819819returnself.tk.getint(self.tk.call(args))
820820821-defwait_variable(self, name='PY_VAR'):
821+defwait_variable(self, name):
822822"""Wait until the variable is modified.
823823824824 A parameter of type IntVar, StringVar, DoubleVar or
@@ -843,11 +843,11 @@ def wait_visibility(self, window=None):
843843window=self
844844self.tk.call('tkwait', 'visibility', window._w)
845845846-defsetvar(self, name='PY_VAR', value='1'):
846+defsetvar(self, name, value):
847847"""Set Tcl variable NAME to VALUE."""
848848self.tk.setvar(name, value)
849849850-defgetvar(self, name='PY_VAR'):
850+defgetvar(self, name):
851851"""Return value of Tcl variable NAME."""
852852returnself.tk.getvar(name)
853853Original file line numberDiff line numberDiff line change@@ -0,0 +1,5 @@
1+In :mod:`tkinter`, the *name* parameter of the
2+:meth:`~tkinter.Misc.wait_variable`, :meth:`~tkinter.Misc.setvar` and
3+:meth:`~tkinter.Misc.getvar` methods and the *value* parameter of
4+:meth:`!setvar` are now required. Their former default values
5+(``'PY_VAR'`` and ``'1'``) were not meaningful.