I found this calculator code in the web.
I want to add some function, like the pow() but it returns an error.
The error:
button(powF, LEFT, 'pow', lambda w=display: w.set(w.pow()))
AttributeError: StringVar instance has no attribute 'pow'
from Tkinter import *
import mathdef frame(root, side):w = Frame(root)w.pack(side=side, expand=YES, fill=BOTH) return wdef button(root, side, text, command=None):w = Button(root, text=text, command=command)w.pack(side=side, expand=YES, fill=BOTH)return wclass Calculator(Frame):def __init__(self):Frame.__init__(self)self.option_add('*Font', 'Verdana 20 bold') self.pack(expand=YES, fill=BOTH) self.master.title('tk') self.master.iconname("calcu1ator") display = StringVar()Entry(self,relief=SUNKEN,textvariable=display).pack(side=TOP,expand=YES,fill=BOTH)for key in ("123", "456", "789", "-0."):keyF = frame(self, TOP)for char in key:button(keyF, LEFT, char,lambda w=display, c=char: w.set(w.get() + c))opsF = frame(self, TOP)for char in "+-*/=":if char == '=':btn = button(opsF, LEFT, char)btn.bind('<ButtonRelease-1>',lambda e, s=self, w=display: s.calc(w), '+')else:btn = button(opsF, LEFT, char,lambda w=display, s=' %s '%char:w.set(w.get()+s))clearF = frame(self, BOTTOM)button(clearF, LEFT, 'Clr', lambda w=display: w.set(''))#powF = frame(self, BOTTOM)#button(powF, LEFT, 'pow', lambda w=display: pow(w,2))def calc(self, display):try:display.set(eval(display.get()))except:display.set("ERROR")if __name__ == '__main__':Calculator().mainloop()