diff -r eca161a355d4 Lib/tkinter/__init__.py --- a/Lib/tkinter/__init__.py Sat May 14 21:29:03 2016 -0700 +++ b/Lib/tkinter/__init__.py Sun May 15 11:31:20 2016 +0300 @@ -2092,6 +2092,8 @@ class Grid: size = grid_size = Misc.grid_size slaves = grid_slaves = Misc.grid_slaves +_widget_counts = {} + class BaseWidget(Misc): """Internal class.""" def _setup(self, master, cnf): @@ -2109,7 +2111,9 @@ class BaseWidget(Misc): name = cnf['name'] del cnf['name'] if not name: - name = repr(id(self)) + name = self.widgetName.lower() + _widget_counts[name] = count = _widget_counts.get(name, 0) + 1 + name = '%s-%d' % (name, count) self._name = name if master._w=='.': self._w = '.' + name