peeta
31-01-2005, 21:58
hallo
ich hab n ganz einfaches programm in python (soll mal n taschenrechner werden, für die schule), aber irgendwie klappt da was nicht.
#!/usr/share/python/
from Tkinter import *
class calc(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title('calc')
self.grid()
self.mkcomps()
self.acht()
def mkcomps(self):
self.eing = Entry(self)
self.eing.grid(row=1,column=1,columnspan=3)
self.schluss = Button(self)
self.schluss['text']='quit'
self.schluss['command']=self.quith
self.schluss.grid(row=1,column=4)
self.sieben = Button(self)
self.sieben['text']='7'
self.sieben['command']=self.sieben
self.sieben.grid(row=2,column=1)
self.acht = Button(self)
self.acht['text']='8'
self.acht['command']=self.acht
self.acht.grid(row=2,column=2)
self.neun = Button(self)
self.neun['text']='9'
self.neun['command']=self.sieben
self.neun.grid(row=2,column=3)
def quith(self):
self.quit()
def sieben(self):
print 'sieben'
def acht(self):
print 'acht'
calcu = calc()
if __name__ == '__main__': calcu.mainloop()
der interpreter kann nämlich die funktion self.acht() in __init__ nicht finden
Fehler:
Traceback (most recent call last):
File "tk.py", line 42, in ?
calcu = calc()
File "tk.py", line 11, in __init__
self.acht()
AttributeError: Button instance has no __call__ method
befürchte dass ich entweder blind bin oder ich die grundlagen für oop in python nicht verstanden habe.
würde mich über schnelle hilfe freuen
peeta
ich hab n ganz einfaches programm in python (soll mal n taschenrechner werden, für die schule), aber irgendwie klappt da was nicht.
#!/usr/share/python/
from Tkinter import *
class calc(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title('calc')
self.grid()
self.mkcomps()
self.acht()
def mkcomps(self):
self.eing = Entry(self)
self.eing.grid(row=1,column=1,columnspan=3)
self.schluss = Button(self)
self.schluss['text']='quit'
self.schluss['command']=self.quith
self.schluss.grid(row=1,column=4)
self.sieben = Button(self)
self.sieben['text']='7'
self.sieben['command']=self.sieben
self.sieben.grid(row=2,column=1)
self.acht = Button(self)
self.acht['text']='8'
self.acht['command']=self.acht
self.acht.grid(row=2,column=2)
self.neun = Button(self)
self.neun['text']='9'
self.neun['command']=self.sieben
self.neun.grid(row=2,column=3)
def quith(self):
self.quit()
def sieben(self):
print 'sieben'
def acht(self):
print 'acht'
calcu = calc()
if __name__ == '__main__': calcu.mainloop()
der interpreter kann nämlich die funktion self.acht() in __init__ nicht finden
Fehler:
Traceback (most recent call last):
File "tk.py", line 42, in ?
calcu = calc()
File "tk.py", line 11, in __init__
self.acht()
AttributeError: Button instance has no __call__ method
befürchte dass ich entweder blind bin oder ich die grundlagen für oop in python nicht verstanden habe.
würde mich über schnelle hilfe freuen
peeta