が定義されていない私は、私はこれを解決する方法を誤りNameError: name 'make_label' is not defined
を得、このようなクラス内からメソッドを呼び出すためにPythonのNameError:名前METHOD_NAMEが
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()
を試してみました。また、モジュールとして実行するために、可能な限りインポート可能なコードを作成しようとしましたが、これを行う最善の方法は何ですか?
多くのおかげ
コードを貼り付けたときにインデントが間違っていると思うので、コードを修正してください。 'make_label'は関数かクラスメソッドであるはずですか?私は後者を疑う?もしそうなら、 'ClassInstance.make_label()'または 'self.make_label()'(クラスインスタンスの中から)を使う必要があります。実際にLoginFrameクラスインスタンスをどこにでも作ることは決してありません。 – Carpetsmoker