2014-03-29 127 views
0

我正在写一个模块来压缩一些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

你'init'应该不会是'__init__'? – sshashank124

回答

0

如果你打算导入模块,那么你的__init__.py文件应该与其他python脚本位于同一个文件夹中。然后,您可以将pygame初始化脚本放入您的.py文件中。只是躺在外面,而不是用任何方法或任何东西。然后,当您导入模块,它应该工作:

module\ 
    __init__.py 
    calculate.py 
    video_display.py 

所以当你做import module,该__init__.py文件被调用直线距离并初始化Pygame的模块,如果这是你摆在那里的脚本。然后如果你的其他文件,如calculate.pyvideo_display.py使用pygame,它会很容易工作,如果你打电话给他们的方法像module.calculate.some_method()

希望有所帮助。快乐Pygaming