Ich versuchte dies eine Methode aufrufen aus einer Klasse wie,Python Nameerror: Name method_name definiert nicht
from tkinter import *
class LoginFrame(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
# initialize the login screen UI
def initUI(self):
self.parent.title("Login Screen")
def make_label(parent, caption=NONE, side=TOP, **options):
label = Label(parent, text=caption, **options)
if side is not TOP:
label.pack(side=side)
else:
label.pack()
return label
def main():
top = Tk()
# create a background image
photo_bg = PhotoImage(file="building.gif")
building = make_label(top, image=photo_bg)
top.mainloop()
if __name__ == '__main__':
main()
Ich habe einen Fehler NameError: name 'make_label' is not defined
, wie diese zu lösen. Außerdem habe ich versucht, den Code so importierbar wie möglich zu machen, um als Modul zu laufen, was ist der beste Weg das zu tun?
vielen Dank
Ich denke, etwas schief gelaufen mit der Einrückung, wenn Sie Ihren Code eingefügt haben, bitte [bearbeiten] den Code, um das zu beheben. Soll 'make_label' eine Funktion oder eine Klassenmethode sein? Ich vermute Letzteres? Wenn dies der Fall ist, müssen Sie 'ClassInstance.make_label()' oder 'self.make_label()' (innerhalb der Klasseninstanz) verwenden. Du machst nie irgendwo eine 'LoginFrame'-Klasseninstanz. – Carpetsmoker