다음 코드는 IDLE 내에서 정상적으로 실행되지만, 그렇지 않으면 "NameError : global name 'messagebox'not defined"가 발생합니다. 그러나 명시 적으로 from tkinter import messagebox
을 지정하면 정상적으로 실행됩니다.Python tkinter 8.5 import messagebox
왜 IDLE은 명시 적 import 구문이 필요하지 않지만 다른 곳에서는 필요합니까?
다음 코드는 IDLE 내에서 정상적으로 실행되지만, 그렇지 않으면 "NameError : global name 'messagebox'not defined"가 발생합니다. 그러나 명시 적으로 from tkinter import messagebox
을 지정하면 정상적으로 실행됩니다.Python tkinter 8.5 import messagebox
왜 IDLE은 명시 적 import 구문이 필요하지 않지만 다른 곳에서는 필요합니까?
메시지 박스는 Tkinter를 별도의 서브 모듈, 그래서 간단하게는 Tkinter에서 가져 오기를 완료하고 : 명시 적으로과 같이 가져올 수있다
from tkinter import *
는 메시지 박스 가져 오지 않습니다 :
을from tkinter import messagebox
ttk를 명시 적으로 가져 오는 것과 동일한 방식으로
유휴 상태에서 작동하는 이유는 유휴 상태에서 메시지 상자를 가져 오기 때문에 유휴 상태로 작동하기 때문에 유휴 상태에서 작업 할 때 해당 가져 오기에 액세스 할 수 있습니다.
의미가 있습니다. 좋은 대답. –
IDLE은 Python으로 작성되었으며 GUI 용으로 Tkinter를 사용하므로 프로그램에서 IDLE 자체에서 사용중인 import
문을 사용하는 것처럼 보입니다. 그러나 IDLE 프로세스 외부에서 프로그램을 실행하려면 messagebox
에 대해 import
문을 명시 적으로 포함시켜야합니다.
고맙습니다. 똑같이 좋은 대답. –
IDLE은 tkinter 프로그램이므로 고유 한 가져 오기 및 루트가 있습니다. IDLE에서 tkinter로 프로그래밍하는 것은 나쁜 생각입니다. 이상 행동을 피하려면 콘솔에서 더 좋습니다. – Trimax