1 回答

TA貢獻(xiàn)2051條經(jīng)驗 獲得超10個贊
“模塊級別”僅意味著腳本中不屬于類或函數(shù)的部分。您在那里定義的任何名稱都會直接進(jìn)入模塊名稱空間。
因此,錯誤消息只是說要移動
def main():
import os
import sys
import time
import pywhatkit as whatsapp
from speedtest import Speedtest
from tkinter import *
from tkinter import messagebox
from os import listdir
from PIL import Image
到
import os
import sys
import time
import pywhatkit as whatsapp
from speedtest import Speedtest
from tkinter import *
from tkinter import messagebox
from os import listdir
from PIL import Image
def main():
事實上,口譯員真正關(guān)心的只是臺詞from tkinter import *。其他的是約定和可讀性的問題。
CPython 對函數(shù)內(nèi)部的局部命名空間進(jìn)行優(yōu)化,要求解釋器預(yù)先知道所有局部變量的名稱。星號導(dǎo)入可以防止這種情況發(fā)生,因為在運(yùn)行導(dǎo)入模塊之前您不知道導(dǎo)入的模塊中將包含什么名稱。全局命名空間沒有此限制,因此您可以在那里進(jìn)行星號導(dǎo)入。
Python 是一種供成年人使用的語言。僅僅因為某些東西是“不好的做法”或不可維護(hù)并不意味著它是語法錯誤。
添加回答
舉報