正如在上篇文章中看到的,在查找最底层的文档时用到了一个全局变量集合COUNT来保存当前目录下的所有文件。实际上在python的进一步应用中,经常会涉及到全局变量的问题,常见的全局变量有两种用法:
第一:声明法:
在文件开头声明Python全局变量variable,在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部变量。 通常将全局变量用大写字母表示。例如上篇文章中要将最初目录下的所有文档路径记录下来以便下一个方法的处理,就用到了一个全局变量COUNT
import sys import os COUNT=set() def fun(path): for root,dirs,files in os.walk(path): for fn in files: filename="" filename=root+'\\'+fn global COUNT COUNT.add(filename)
第二:模块法
这种方法主要用于不同文件间变量的共享,例如
模块g1中写入两个全局变量,并初始化
gl_1 = 'hello' gl_2 = 'world'
模块g2中调用全局变量
import gl def hello_world() print gl.gl_1, gl.gl_2
模块g3中修改全局变量
import gl def fun1() gl.gl_1 = 'Hello' gl.gl_2 = 'World'
总的来说,不到万不得已就不要用全局变量,因为正如以上所看到一样,g2中要调用全局变量,可是在g3中却将其修改掉了。这样就会造成一些难以发现的错误