全局变量使用

时间:2014-03-29 00:19:08

标签: python-2.7 global-variables pygame

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

1 个答案:

答案 0 :(得分:0)

如果您要导入模块,那么您应该在与其他python脚本相同的文件夹中有一个__init__.py文件。然后,您可以将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