变量作用域:
 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。
 全局变量所有作用域都可读,局部变量只能在本函数可读
 函数在读取变量时,优先读取函数本身自有的局部变量,再去读全局变量

全局变量
 读,均可读
 赋值,global
 字典,列表可修改
 全局变量全大写

  例:

  1. name = 'Tim' #全局变量
  2.  
  3. def f1():
  4. age = 18 #局部变量
  5. print(age,name)
  6.  
  7. def f2():
  8. age=19 #局部变量
  9. print(age,name)
  10.  
  11. f1()
  12. f2()
  13. >>>
  14. 18 Tim
  15. 19 Tim

 

  在函数内部也可以定义全局变量:

  1. name = 'Tim' #全局变量
  2.  
  3. def f1():
  4. age = 18 #局部变量
  5. global name #定义全局变量
  6. name = 'Eric'
  7. print(age,name)
  8. f1()
  9. print(name)

全局变量默认可读,如果需要改变全局变量的值,需要在函数内部使用global定义

特殊:列表,字典,可修改,但不能重新赋值,如果需要重新赋值,需要在函数内部使用global定义全局变量

  

  1. NAME = ['Tim','mike'] #全局变量
  2. NAME1 = ['Eric','Jeson'] #全局变量
  3. NAME3 = ['Tom','jane'] #全局变量
  4.  
  5. def f1():
  6. NAME.append('Eric') #列表的append方法可改变外部全局变量的值
  7. print('函数内NAME: %s'%NAME)
  8. NAME1 = '' #重新赋值不可改变外部全局变量的值
  9. print('函数内NAME1: %s'%NAME1)
  10. global NAME3 #如果需要重新给列表赋值,需要使用global定义全局变量
  11. NAME3 = ''
  12. print('函数内NAME3: %s'%NAME3)
  13. f1()
  14. print('函数外NAME: %s'%NAME)
  15. print('函数外NAME1: %s'%NAME1)
  16. print('函数外NAME3: %s'%NAME3)
  17. >>>
  18. 函数内NAME ['Tim', 'mike', 'Eric']
  19. 函数内NAME1: 123
  20. 函数内NAME3: 123
  21. 函数外NAME: ['Tim', 'mike', 'Eric']
  22. 函数外NAME1: ['Eric', 'Jeson']
  23. 函数外NAME3 123

Python--变量作用域的更多相关文章

  1. python变量作用域

    [python变量作用域] 几个概念: python能够改变变量作用域的代码段是def.class.lamda. if/elif/else.try/except/finally.for/while 并 ...

  2. Python 变量作用域 LEGB (上)—— Local,Global,Builtin

    Python 变量作用域的规则是 LEGB LEGB含义解释:L —— Local(function):函数内的名字空间E —— Enclosing function locals:外部嵌套函数的名字 ...

  3. Python 变量作用域与函数

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  4. Python 变量作用域 LEGB (下)—— Enclosing function locals

    上篇:Python 变量作用域 LEGB (上)—— Local,Global,Builtin https://www.cnblogs.com/yvivid/p/python_LEGB_1.html ...

  5. python——变量作用域及嵌套作用域

    ----------------------------------------------------------------------------- 前言-------------------- ...

  6. python 变量作用域、闭包

    先看一个问题: 下面代码输出的结果是0,换句话说,这个fucn2虽然已经用global声明了variable1,但还是没有改变变量的值 def func1(): variable1=0 def fun ...

  7. python变量作用域,函数与传参

    一.元组传值: 一般情况下函数传递参数是1对1,这里x,y是2个参数,按道理要传2个参数,如果直接传递元祖,其实是传递一个参数 >>> def show( x, y ): ... p ...

  8. Python变量作用域(一)

    在一个程序中使用变量名时,Python创建.改变或者查找变量名都是在所谓的命名空间中进行的.作用域指的就是命名空间. Python中的变量名在第一次赋值时已经创建,并且必须经过赋值后才能够使用.由于变 ...

  9. Python 变量作用域,闭包和装饰器

    from dis import dis b = 6 def f1(a): print(a)print(b) b = 9 f1(3) print(dis(f1)) # dis模块可以查看python函数 ...

  10. python 变量作用域 v.__sizeof__() python 深复制 一切皆对象 尽量减少内存消耗

    python 深入理解 赋值.引用.拷贝.作用域 - 江召伟 - 博客园 https://www.cnblogs.com/jiangzhaowei/p/5740913.html a=[1,2,5]b= ...

随机推荐

  1. elasticsearch data importing

    ElasticSearch stores each piece of data in a document. That's what I need. Using the bulk API. Trans ...

  2. ExtJS初接触 - 在项目中使用ExtJS

    ExtJS初接触 - 在项目中使用ExtJS 今天ExtJS官网发布了ExtJS最新正式版4.2.1.Ext JS 4.2.1 正式版 下载 ExtJS为开发者在开发富客户的B/S应用中提供丰富的UI ...

  3. linux 网络编程:客户端与服务器通过TCP协议相互通信 + UDP

    1.TCP编程的客户端一般步骤: 1.创建一个socket,用函数socket(): 2.设置socket属性,用函数setsockopt():* 可选: 3.绑定IP地址.端口等信息到socket上 ...

  4. css透明度(兼容所有浏览器)

    .transparent{ background: rgba(, , , 0.3) !important; /* IE无效,FF有效 */ filter: alpha(opacity=); -moz- ...

  5. context.response.end()和return的区别

    最近忽然想起这个问题,上网查了很多,觉得这个网友回答的很给力,从本质上剖析了问题.最后发现这篇文章也是转载自博客园的一位网友.http://www.cnblogs.com/adolphyang/p/4 ...

  6. python 函数简介之三

    1. 非固定个数的实参----参数组,* args ,其结果将以元组的形式呈现出来 def func(*args): print(args) func(1,2,3,4,5) #第一种调用方式, 多个实 ...

  7. 【CSS学习笔记】a标签的四种伪类

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  8. Activity和Fragment之间解耦

    看鸿洋博客:http://blog.csdn.net/lmj623565791/article/details/42628537,整理下一些关键点 public class ContentFragme ...

  9. Linux下的暴力密码在线破解工具Hydra安装及其组件安装-使用

    Linux下的暴力密码在线破解工具Hydra安装及其组件安装-使用 hydra可以破解: http://www.thc.org/thc-hydra,可支持AFP, Cisco AAA, Cisco a ...

  10. LR设置关联---部分内容摘自网络--望见谅

    模拟环境---LR机票定票系统设置:首页点击administration-勾选Set LOGIN form's action tag to an error page.选项,点击update. 现在许 ...