参考链接: Python全局,局部和非局部变量

1. 使用局部变量

deffunc(x):

print'x is', x

x =2

print'Changed local x to', x

x =50

func(x)

print'x is still', x

x is 50

Changed local x to 2

x is still 50

在函数中,我们第一次使用x的值的时候,Python使用函数声明的形参的值。

接下来,我们把值2赋给x。x是函数的局部变量。所以,当我们在函数内改变x的值的时候,在主块中定义的x不受影响。

在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响。

2. 利用global关键字使用全局变量

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。

deffunc():

globalx

print'x is', x

x =2

print'Changed local x to', x

x =50

func()

print'Value of x is', x

x is 50

Changed global x to 2

Value of x is 2

global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。

你可以使用同一个global语句指定多个全局变量。例如global x, y, z。

[转载] 在python中、关于全局变量和局部变量、以下_python中的全局变量和局部变量相关推荐

  1. python的作用域分别有几种_python中作用域与函数嵌套

    知识回顾: 拆解传参. 1.字典传参.使用** 2.列表传参.使用* 实际上我们在定义函数的时候,如果省略了星号,那么在调用函数的时候必须要省略星号,除非我们拆解后的参数个数刚好相等. 视频内容 本节 ...

  2. python中的global是什么意思_Python中的global关键字,你了解吗?

    前言 今天来了解下 Python 中的 global 关键字. Python变量的作用域 实战案例演示之前,先要了解下 Python 的作用域. 曾经在闭包的文章 <python小课堂26 - ...

  3. python 函数参数前面两个星号_Python中参数前面一个星号两个星号(*参数,**参数)起什么作用呢?...

    摘要: 下文讲述Python中参数前面一个星号两个星号的功能分享,如下所示: 在Python语言中,我们经常看见参数前面 加上一个星号或两个星号 那么这些写法到底起什么作用呢? 下文将一一道来,如下所 ...

  4. python中转义符的用法大全_Python中的各种转义符\n\r\t

    Python中属性和描述符的简单使用 Python的描述符和属性是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过google和阅读源码,现将自己的理解和 ...

  5. python列表前加星号是什么_Python中的星号:用途及使用方法(1)

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 原作者:Trey Hunner Python中 *和**很常见.无论是对于编程萌新还是许多从其他编程语言( ...

  6. python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承

    1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...

  7. python之33个关键字详解_Python 中的关键字 with 详解

    在 Python 2.5 中,with关键字被加入.它将常用的 try ... except ... finally ...模式很方便的被复用.看一个最经典的例子: with open('file.t ...

  8. python中字典和集合的区别_Python中字典和集合学习小结

    映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表. ...

  9. python异常处理时所使用的保留字_Python中,下列哪个保留字不用于异常处理______________。_学小易找答案...

    [单选题]维持细胞生存所必需的最基本的基因是 ( ) [单选题]从体细胞克隆高等哺乳动物的成功说明了 ( ) [单选题]细胞决定与细胞分化的关系是 ( ) [多选题]一种类型的分化细胞转变成另-种类型 ...

  10. python中的列表是指针吗_Python中的指针——到底指什么(二)

    在 Python中的指针--到底指什么(一) 中,我们知道在Python的一切都是对象,变量其实是指向PyObject对象的名称,对不可变变量进行操作后,名称指向了另一个PyObject. 扣留对象 ...

最新文章

  1. Python基础学习!基本元素,数字,字符串以及变量
  2. Linux系统管理学习路线图
  3. 2014年3月29日缅甸将举行人口普查
  4. tensorflow 标准数据读取 tfrecords
  5. 计算机视觉会议与专家(重排版)
  6. CodeForces 558A,B
  7. Exynos4412裸机开发——中断处理
  8. 程序员的毕业设计,时隔一年,仍感觉头秃
  9. Less 混合(mixin)
  10. Android字数限制的EditText实现方案研究
  11. Sql Server远程连接
  12. maven本地安装jar
  13. EasyUI:Parser 解析器
  14. python遗传算法工具箱的使用_Deap: python中的遗传算法工具箱
  15. 视频中的字幕如何提取为文本
  16. ramda_使用Ramda.js进行动手功能编程
  17. 四次重启共享充电宝业务 美团终结“三电一兽”格局预言会成真吗?
  18. CF1463-D. Pairs
  19. 51单片机入门教程(3)——数码管显示学号
  20. drds的update使用

热门文章

  1. 东南大学成贤学院计算机报名,2019上半年东南大学成贤学院全国计算机等级考试预报名通知...
  2. 【CCCC】L3-009 长城 (30分),计算几何+凸包,极角排序
  3. 2020 年百度之星·程序设计大赛 - 测试赛1001 度度熊保护村庄
  4. keepass+onedrive打造密码管理器
  5. 【Luogu3371】【模板】单源最短路径(SPFA)
  6. 计算机硬件知识大赛,计算机知识技能大赛.doc
  7. JavaScript函数的声明以及调用(1)
  8. android 层叠轮播,vue手写一个卡片化层叠轮播(支持滑动,移动端连续滚动,点击)...
  9. css设置按钮竖直方向居中_button内flex垂直居中竟然不居中的解决
  10. c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍