我正在编写一个模块来压缩一些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实际上在模块之外初始化,是否有一种方法呢?我明白它与全局变量有关)? (在raspbain上运行python 2.7.3和pygame 2.7)
答案 0 :(得分:0)
如果您要导入模块,那么您应该在与其他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