Python 2.7 全局变量使用

Python 2.7 全局变量使用,python-2.7,global-variables,pygame,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

我正在编写一个模块来浓缩一些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上运行Python2.7.3和pygame 2.7)

如果要导入模块,那么您应该在与其他python脚本相同的文件夹中有一个
\uuuu init\uuuuu.py
文件。然后,您可以将
pygame
初始化脚本放入
.py
文件中。只是躺在外面,没有任何方法或任何东西。然后,当您导入模块时,它应该可以工作:

module\
    __init__.py
    calculate.py
    video_display.py
因此,当您执行导入模块时,会立即调用
\uuuu init\uuuuu.py
文件,并初始化pygame模块(如果您在其中输入了脚本)。然后,如果您的其他文件,如
calculate.py
video\u display.py
使用pygame,那么如果您调用它们的方法,如
module.calculate.some\u method()
,它将很容易工作


希望有帮助。快乐游戏

你的
init
应该是
\uuuu init\uuuu