目录

在函数体内部使用全局变量

global关键字


局部变量就是定义在一个函数体内部的变量

全局变量是定义在外面的变量

比如:

a = 1
def f():b = 2

其中a就是全局变量,而b是局部变量。局部变量只在函数体内部有效,出了函数体,外面是访问不到的,而全局变量则对下面的代码都有效。

在函数体内部使用全局变量

全局变量可以直接在函数体内容部使用的,你可以直接访问,但是注意的是,如果对于不可变类型的数据,如果在函数里面进行了赋值操作,则对外面的全局变量不产生影响,因为相当于新建了一个局部变量,只是名字和全局一样,而对于可变类型,如果使用赋值语句,同样对外部不产生影响,但是使用方法的话就会对外部产生影响。

如下面的代码:

g_b = 3;g_l1 = [1,2];g_l2 = [1,2,3]
def t1():g_b = 2g_l1 =[]g_l2.append(7)
t1(g_b,g_l1,g_l2)
print(g_b,g_l1,g_l2)

global关键字

上面说到,如果使用的是赋值语句,在函数内部相当于新建了一个变量,并且重新给了指向,但是有时候我们想把这个变量就是外部的那个全局变量,在赋值操作的时候,就是对全局变量给了重新的指向,这个时候可以通过global关键字表示我在函数里面的这个变量是使用的全局那个。使用方法如下:

g_b = 3
def t1():global g_bg_b = 2
t1()
print(g_b)

这个时候你会发现全局变量g_b也重新指向了,这是因为global gb表示指定了函数中的g_b就是外面的那个。

python 全局变量 局部变量相关推荐

  1. python画聚类图_python绘制的聚类图Python的局部变量和全局变量使用解惑

    局部变量:在函数中定义的变量,作用域是当前函数,只对当前函数起作用. 全局变量:在代码开头定义的变量,作用域是整段代码,对整段代码起作用. 先看下面的实例, 最后给结论.name = 'PythonT ...

  2. python变量作用域图解_图解python全局变量与局部变量相关知识

    这篇文章主要介绍了图解python全局变量与局部变量相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 了解全局变量和局部变量之前,我们先来了解 ...

  3. Python 全局变量、局部变量、静态变量 详解

    参考连接: 1. http://blog.csdn.net/eastmount/article/details/48766861 2. http://www.imooc.com/article/146 ...

  4. Python全局变量和局部变量(超详细,纯干货,保姆级教学)

    全局变量定义: 在函数外部定义的变量.所有函数内部都可以使用这个变量. 局部变量定义: 在函数内部定义的变量.这个变量只能在定义这个变量的函数内部使用. 第一种:global定义全局变量在自定义函数内 ...

  5. Python 全局变量和局部变量

    这篇文章主要介绍了Python 全局变量和局部变量,命名空间的概念的提出是为了划分和控制变量是否可见,以及生存周期的长短:命名空间的作用范围叫做作用域更多详细内容需要的小伙伴可以参考一下 1.命名空间 ...

  6. python全局变量赋值报错_python全局变量、回调函数

    1.python全局变量相关概念及使用 来自菜鸟教程上的例子: http://www.runoob.com/python3/python3-function.html 一.python入参需要注意地方 ...

  7. python中局部变量使用

    python中局部变量使用 1.代码 name="black"def change_name():name="姑娘"print("在",na ...

  8. [转载] python全局变量的使用

    参考链接: Python全局变量 问题提出,怎么记录汉诺塔问题中盘子移动的次数? def hanu(n,a,b,c):          if n==1 :                print( ...

  9. Python全局变量的隐藏“窍门”

    Python全局变量是不符合参数传递的相关规律,所以很多人不愿意经常使用,除非在定义常量的情况下.一下要讨论的是关于全局变量的相关问题,发现其中隐藏的窍门.希望大家通过这篇文章有所收获. 程序大致是这 ...

最新文章

  1. 使用Cloudera Manager部署oozie
  2. visio2007 画流程图杂记
  3. 【数字信号处理】傅里叶变换性质 ( 傅里叶变换线性性质 | 傅里叶变换时移性质 )
  4. 剑指offer:替换空格
  5. TimesTen Warnings and Errors - TT0400 to TT9999 [IDnbsp (
  6. socket模拟http的登陆_Python网络爬虫之模拟登陆 !
  7. JavaScript HTML DOM
  8. C语言调试技巧:stdin,stdout,stderr
  9. Google Adwords 关键字策略 – SEO数据搭配
  10. hadoop 自定义OutputFormat
  11. 谷歌终于开放 “.app” 顶级域名注册:需要 HTTPS 加密
  12. WP开发笔记——页面传参
  13. 为什么成为CISSP持证专家?
  14. 软件功能测试ok,S7_200解密软件,测试OK
  15. Kafka彻底删除topic详解
  16. mysql对比时间段百分比_如何使用MySQL计算每日最高价格变化百分比?
  17. 尚品汇_第3章_平台属性管理
  18. 南阳OJ 题目64:小学生算术
  19. 第一堂YY日语课——清音发音
  20. Java使用jfreechart画饼图_使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP-2...

热门文章

  1. 3D模型在网页上显示
  2. C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针
  3. SmartNIC/DPU — 主流厂商
  4. 5GS 协议栈 — PFCP 协议 — MAR 多接入规则
  5. 边缘计算 — 起源与定义
  6. CAS KVM 虚拟机的保护与恢复
  7. containerd发布了CRI修复程序和CVE-2019-5736更新的runc
  8. 30天敏捷生活(9-11):调整30天的节奏
  9. XenApp/XenDesktop 7.11中对于视频、图片、文字的优化的说明
  10. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)...