P.S кстати ещё один интересный момент, если менять названия кнопок, то функция будет браться уже из другой кнопки.
#!/usr/bin/python2.7 #coding:utf8 import Tkinter class MainWindow(Tkinter.Frame): def __init__(self, root): Tkinter.Frame.__init__(self, root, height=475, width=250) self.pack(anchor='nw') self.pack_propagate(0) self.build_widget() def build_widget(self): skillet = {u'1': [0, 0, lambda: self.test()], u'2': [1, 0, lambda: exit(0)], u'3': [2, 0, lambda: exit(0)], u'4': [3, 0, lambda: exit(0)], u'5': [4, 0, lambda: exit(0)], u'6': [0, 1, lambda: exit(0)], u'7': [1, 1, lambda: exit(0)], u'8': [2, 1, lambda: exit(50)], u'9': [3, 1, lambda: exit(0)]} # Ключ служит названием кнопки, а в значении хранятся # координаты кнопки и вызываемая при нажатии функция button = [] for i in skillet.keys(): but = Tkinter.Button(self, text=i, width=20) but.grid(row=skillet[i][0], column=skillet[i][1], padx=25, pady=5, sticky='nw') but.bind("<ButtonRelease-1>", lambda event: skillet[i][2]()) button.append(but) def test(self): print('test') if __name__ == '__main__': root = Tkinter.Tk() root.title('Test') root.geometry('475x250+0+0') main = MainWindow(root) root.mainloop()

