我知道import *
不好,但是当我懒得键入或记住导入内容时,有时会用它来快速制作原型(prototype)
我正在尝试以下代码:
from OpenGL.GL import *
shaders.doSomething()
结果为错误:“NameError:未定义全局名称'shaders'”
如果我更改进口:
from OpenGL.GL import *
from OpenGL.GL import shaders
shaders.doSomething()
错误消失。为什么
*
不包含shaders
? 最佳答案
shaders
是一个子模块,而不是一个函数。
语法from module import something
不导入子模块(这是另一个答案,未在__all__
中定义)。
要获取该模块,您必须专门将其导入:
from OpenGL.GL import shaders
或者,如果您只想拥有
shaders
的一些功能:from OpenGL.Gl.shaders import function1, function2, function3
如果要拥有
shaders
的所有功能,请使用:from OpenGL.Gl.shaders import *
希望这可以帮助!
关于Python: `from x import *`不导入所有内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19883870/