Python多模块全局变量引用和修改
来源:互联网 发布:淘宝一元拍卖的玉真假 编辑:程序博客网 时间:2024/06/14 02:42
定义三个py文件: g1.py, t1.py, t2.py
其中g1.py定义了两个全局变量,而t1.py和t2.py引用g1.py模块。三个模块文件都具有修改和打印全局变量的方法。
根据以下代码的执行结果,可以得出:原始定义模块中的全局变量,和引用模块中的全局变量应该不在同一个命名空间中。
(1) g1.py为全局变量的原始定义文件。 g1.py中全局变量的值不会受引用他的模块(t1.py和t2.py)的影响。也就是说,g1中调用t1.py和t2.py的函数修改全局变量,
g1.py中全局变量的值不受影响。而g1.py中自身的修改函数会影响自己的变量值。
同时,t1.py和t2.py中全局变量的值,也不会受g1.py的影响。即在g1.py中调用g1的修改函数,不会影响到t1.py和t2.py中全局变量的取值。
(2) t1.py和t2.py 都引用了g1模块。t1.py和t2.py中修改全局变量,在他们之间都是可见的。即t1.py修改了全局变量, t2.py可以感知到。在t2.py修改全局变量的值,
在t1.py中可以感知到。t1.py和t2.py引用的全局变量应该在同一个命令空间中,修改时相互可见。
*********************************************************************************************************************************************
g1.py 源代码:
import t1import t2gl_1 = '000'gl_2 = '000'def change_info(): global gl_1, gl_2 gl_1 = '555' gl_2 = '666'def print_info(): print gl_1, gl_2if __name__ == '__main__': t1.t1_print_g1() t2.t2_print_g1() print_info() print "="*10 t2.t2_change_g1() t1.t1_print_g1() t2.t2_print_g1() print_info() print "="*10 t1.t1_change_g1() t1.t1_print_g1() t2.t2_print_g1() print_info() print "="*10 change_info() t1.t1_print_g1() t2.t2_print_g1() print_info()
g1.py执行的结果:
000 000
000 000
000 000
==========
333 444
333 444
000 000
==========
111 222
111 222
000 000
==========
111 222
111 222
555 666
*********************************************************************************************************************************************
t1.py 源代码:
t1.py执行的结果:import g1import t2def t1_change_g1(): g1.gl_1 = '111' g1.gl_2 = '222'def t1_print_g1(): print g1.gl_1, g1.gl_2if __name__ == '__main__': t1_print_g1() t2.t2_print_g1() g1.print_info() print "="*10 t2.t2_change_g1() t1_print_g1() t2.t2_print_g1() g1.print_info() print "="*10 t1_change_g1() t1_print_g1() t2.t2_print_g1() g1.print_info() print "="*10 g1.change_info() t1_print_g1() t2.t2_print_g1() g1.print_info()
000 000
000 000
000 000
==========
333 444
333 444
333 444
==========
111 222
111 222
111 222
==========
555 666
555 666
555 666
*********************************************************************************************************************************************
t2.py 源代码:
t2.py执行的结果:import t1import g1def t2_change_g1(): g1.gl_1 = '333' g1.gl_2 = '444'def t2_print_g1(): print g1.gl_1, g1.gl_2if __name__ == '__main__': t1.t1_print_g1() t2_print_g1() g1.print_info() print "="*10 t2_change_g1() t1.t1_print_g1() t2_print_g1() g1.print_info() print "="*10 t1.t1_change_g1() t1.t1_print_g1() t2_print_g1() g1.print_info() print "="*10 g1.change_info() t1.t1_print_g1() t2_print_g1() g1.print_info()
000 000
000 000
000 000
==========
333 444
333 444
333 444
==========
111 222
111 222
111 222
==========
555 666
555 666
555 666
- Python多模块全局变量引用和修改
- python 全局变量引用与修改
- 函数中“引用”全局变量和“修改”全局变量的差别
- Python全局变量在模块之间引用的问题
- python 全局变量多个模块访问
- 零基础学python-16.5 模块间全局变量的修改以及其他访问全局变量的方法
- 多进程修改全局变量(python版)
- python对象、引用、全局变量和局部变量的关系
- Python 3 实现定义跨模块的全局变量和使用
- Python的模块引用和查找路径
- Python global全局变量只能在函数中没做global申明,可以引用但修改会报错。
- python中怎样修改全局变量
- python 中全局变量的修改
- Python引用模块
- Python模块引用问题
- 多进程修改全局变量
- Python学习7-模块的定义和引用
- python csv模块配置分隔符和引用符
- oozie 学习笔记 action
- Hibernate One2Many映射关系
- hdu 4725 The Shortest Path in Nya Graph(最短路)
- float -- 自适应 demo
- 微信第三方接入遇到的科恩(坑)——登录、分享
- Python多模块全局变量引用和修改
- 多系统启动出现grub rescue模式,错误“normal.mod not found”解决办法
- 封装linux 条件互斥锁
- symfony路由组件(The Routing Component)
- Unfortunately 程序名 has stopped的解决方法(二)
- 代码中使用Fragment(2)
- php专家的博客
- ViewDragHelper的用法
- [黑马程序员](第17)异常