python多文件使用同一个全局变量的定义和使用方法
2011-12-26 22:33
1521 查看
Python是一种面向对象的开发语言,在函数中使用全局变量,一般应作全局变量说明,只有在函数内经过说明的全局变量才能使用,下面介绍下Python全局变量有关问题。
应该尽量避免使用Python全局变量。不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可预知性。对全局变量,如果程序员甲修改了_a的值,这时可能导致程序中的错误。这种错误是很难发现和更正的。
全局变量降低了函数或模块之间的通用性,不同的函数或模块都要依赖于全局变量。同样,全局变量降低了代码的可读性,阅读者可能并不知道调用的某个变量是全局变量。 但是某些时候,Python全局变量能够解决局部变量所难以解决的问题。事物要一分为二。 python里面全局变量有两种灵活的用法:
1. #gl.py
2. gl_1 = 'hello'
3. gl_2 = 'world'
4.
5. 在其它模块中使用
6. #a.py
7. import gl
8.
9. def hello_world()
10. print gl.gl_1, gl.gl_2
11.
12. #b.py
13. import gl
14.
15. def fun1()
16. gl.gl_1 = 'Hello'
17. gl.gl_2 = 'World'
18. def modifyConstant() :
19. global CONSTANT
20. print CONSTANT
21. CONSTANT += 1
22. return
23.
24. if __name__ =='__main__' :
25. modifyConstant()
26. print CONSTANT
1 声明法
在文件开头声明Python全局变量variable, 在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部变量。 CONSTANT = 0 (将全局变量大写便于识别)
2模块法(推荐)
,推荐!
1. #gl.py
2. gl_1 = 'hello'
3. gl_2 = 'world'
4.
5. 在其它模块中使用
6. #a.py
7. import gl
8.
9. def hello_world()
10. print gl.gl_1, gl.gl_2
11.
12. #b.py
13. import gl
14.
15. def fun1()
16. gl.gl_1 = 'Hello'
17. gl.gl_2 = 'World'
18. def modifyConstant() :
19. global CONSTANT
20. print CONSTANT
21. CONSTANT += 1
22. return
23.
24. if __name__ =='__main__' :
25. modifyConstant()
26. print CONSTANT
应该尽量避免使用Python全局变量。不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可预知性。对全局变量,如果程序员甲修改了_a的值,这时可能导致程序中的错误。这种错误是很难发现和更正的。
全局变量降低了函数或模块之间的通用性,不同的函数或模块都要依赖于全局变量。同样,全局变量降低了代码的可读性,阅读者可能并不知道调用的某个变量是全局变量。 但是某些时候,Python全局变量能够解决局部变量所难以解决的问题。事物要一分为二。 python里面全局变量有两种灵活的用法:
1. #gl.py
2. gl_1 = 'hello'
3. gl_2 = 'world'
4.
5. 在其它模块中使用
6. #a.py
7. import gl
8.
9. def hello_world()
10. print gl.gl_1, gl.gl_2
11.
12. #b.py
13. import gl
14.
15. def fun1()
16. gl.gl_1 = 'Hello'
17. gl.gl_2 = 'World'
18. def modifyConstant() :
19. global CONSTANT
20. print CONSTANT
21. CONSTANT += 1
22. return
23.
24. if __name__ =='__main__' :
25. modifyConstant()
26. print CONSTANT
1 声明法
在文件开头声明Python全局变量variable, 在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部变量。 CONSTANT = 0 (将全局变量大写便于识别)
2模块法(推荐)
,推荐!
1. #gl.py
2. gl_1 = 'hello'
3. gl_2 = 'world'
4.
5. 在其它模块中使用
6. #a.py
7. import gl
8.
9. def hello_world()
10. print gl.gl_1, gl.gl_2
11.
12. #b.py
13. import gl
14.
15. def fun1()
16. gl.gl_1 = 'Hello'
17. gl.gl_2 = 'World'
18. def modifyConstant() :
19. global CONSTANT
20. print CONSTANT
21. CONSTANT += 1
22. return
23.
24. if __name__ =='__main__' :
25. modifyConstant()
26. print CONSTANT
相关文章推荐
- (vs2008链接错误LK200x:xxx在yyy.obj中已定义或xxx在yyy中以被引用):一个全局的变量想在多个cpp文件中使用
- python实现跨文件全局变量的方法
- extern-在整个工程文件中使用同一个变量的方法
- Python 3 实现定义跨模块的全局变量和使用
- c++ 使用全局变量的方法多个文件
- python线程的使用方法以及全局变量的应用
- keil 中——C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- 使用全局变量的四种方式:extern、AppDelegate、定义单例对象、NSUserDefaults 和单例工厂的使用方法
- QT 全局变量(多文件使用一个变量) VECTOR(二维数组行、列未知)
- C++基础之两个头文件使用同一个变量会重复定义怎么办
- 如何引用一个已经定义过的全局变量 与 全局变量可不可以定义在可被多个.C文件包含的头文件中
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- python实现跨文件全局变量的方法
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- 5章6节局部与全局使用同一个变量不同定义的调用
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!
- 在头文件中定义变量以及static变量意味着什么?全局变量要如何正确使用?关键字extern要怎么用?
- C\C++小知识: 如何引用一个已经定义过的全局变量 与 全局变量可不可以定义在可被多个.C文件包含的头文件中
- 多个文件中使用同一个全局变量extern