Partial Function Application -- Advantages over normal function?

woooee woooee at gmail.com
Mon Jul 18 15:23:09 EDT 2011


Partial can be used in a GUI program, like Tkinter, to send arguments
to functions.  There are other ways to do that as well as using
partial.  The following program uses partial to send the color to the
change_buttons function.
from Tkinter import *
from functools import partial

class App:
   def __init__(self, parent):
    self.my_parent = parent
    self.my_parent.geometry("200x100+10+10")

    self.R = list()
    for ctr, color in enumerate(("Red", "Blue", "Green")):
        btn = Radiobutton(self.my_parent, text=color, value=ctr+1,
                          command=partial(self.change_buttons, color))
        btn.grid(row = 2, column = ctr+1)
        btn.deselect()
        self.R.append(btn)
    self.R[0].select()
    self.change_buttons("Red")


   def change_buttons(self, color):
       self.my_parent.configure(bg=color)
       for btn in self.R:
            btn.configure(bg=color)

if __name__ == "__main__":
    root = Tk()
    root.title ("Color Option")
    app = App(root)
    root.mainloop()



More information about the Python-list mailing list