我正在编写一个模块来压缩一些pygame相机的东西,而我正在运行测试,我似乎误解了全局变量是如何工作的。
def init(x,y):
import pygame
import pygame.camera
from pygame.locals import *
pygame.init()
pygame.camera.init()
camlist = pygame.camera.list_cameras()
global cam
if camlist:
cam = pygame.camera.Camera(camlist[0],(640,480))
cam.start()
我想在这个模块之外使用变量'cam',但它说它是未定义的。是否有办法在模块中定义它,以便它可以在正常的python提示符中使用?此外,我不认为pygame实际上在模块之外初始化,有一种方法吗?我理解它与全局变量有关)?
如果您要导入模块,那么您应该在与其他python脚本相同的文件夹中有一个__init__.py
文件。然后,您可以将pygame
初始化脚本放入.py
文件中。就躺在外面,什么也没做。然后,当您导入模块时,它应该可以工作:
module
__init__.py
calculate.py
video_display.py
因此,当您执行import module
时,__init__.py
文件被直接调用并初始化pygame模块(如果这是您放入那里的脚本)。然后,如果您的其他文件,如calculate.py
或video_display.py
使用pygame,它将很容易工作,如果您调用它们的方法,如module.calculate.some_method()
。
希望有帮助。快乐Pygaming