博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
global 全局变量的用法
阅读量:5220 次
发布时间:2019-06-14

本文共 815 字,大约阅读时间需要 2 分钟。

说明:i 和foo()都为全局变量,i 是在模块文件顶层注册的,所以为全局变量,他能够在函数内部进行引用而不需要再特意声明是全局变量,且foo()函数也是全局变量

 

1.当没有局部变量时,print(i,'in foo()'),根据LEGB规则,打印的是全局变量;print(i,'global')也是全局变量

如下

i = 1def foo():    print(i,'in foo()')   #局部变量print(i,'global')   #全局变量foo()print(i,'未定义')#输出1 global1 in foo()1

2.当设置局部变量时,print(i,'in foo()') 打印局部变量,print(i,'global'),打印全局变量,print(i,'未定义'),打印全局变量 1

i = 1def foo():    i=5    print(i,'in foo()')   #局部变量print(i,'global')   #全局变量foo()print(i,'未定义')#输出1 global5 in foo()1 未定义

3.当把局部变量设置成global 全局变量时,print(i,'in foo()'),打印的还是局部变量,print(i,'global'),没有变量,始终是def 之前定义的变量i=1;

 print(i,'未定义'),根据LEGB 规则,寻找全局变量,因全局变量设置为i =5,打印出来也是5

i = 1def foo():    global i    i=5    print(i,'in foo()')   #局部变量print(i,'global')   #全局变量foo()print(i,'未定义')#输出1 global5 in foo()5 未定义

 

转载于:https://www.cnblogs.com/sxwen/p/8029244.html

你可能感兴趣的文章
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
ThinkPHP5.1安装
查看>>
js += 含义(小知识)
查看>>
B2321 [BeiJing2011集训]星器 数学&&物理
查看>>
201571030319 四则运算
查看>>
RestTemplate 调用本地服务 connection refused
查看>>
.NET方向高级开发人员面试时应该事先考虑的问题
查看>>
台达PLC modbus 不支持04功能码
查看>>
python学习笔记--装饰器
查看>>