1 回答
TA贡献2051条经验 获得超10个赞
“模块级别”仅意味着脚本中不属于类或函数的部分。您在那里定义的任何名称都会直接进入模块名称空间。
因此,错误消息只是说要移动
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():
事实上,口译员真正关心的只是台词from tkinter import *。其他的是约定和可读性的问题。
CPython 对函数内部的局部命名空间进行优化,要求解释器预先知道所有局部变量的名称。星号导入可以防止这种情况发生,因为在运行导入模块之前您不知道导入的模块中将包含什么名称。全局命名空间没有此限制,因此您可以在那里进行星号导入。
Python 是一种供成年人使用的语言。仅仅因为某些东西是“不好的做法”或不可维护并不意味着它是语法错误。
添加回答
举报