变量作用域

一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。

全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量

那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢?

global关键字

为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性, 可以指定变量的作用域。

global关键字的作用:声明变量var是全局的

代码实例

实例1:

函数优先使用局部变量str = 'global'

def func1():

str = 'local'

print(str)

func1()

print(str)

输出结果local

global

实例2:

在没有局部变量的情况下, 使用全局变量str = 'global'

def func1():

print(str)

func1()

print(str)

输出结果global

global

实例3:

改变全局变量的值, 通过实例1可以看到, 函数内赋值并不能改变全局变量的值,所以需要global关键字str = 'global'

def func1():

global str

str = 'local'

print(str)

func1()

print(str)

输出结果local

local

其他用法

你可以使用同一个global语句指定多个全局变量。

例如global var1, var2, var3

特殊类型

字符串、数字类型是不能被在局部被修改的,除非使用global关键字,但是 列表,字典是可修改,但不能重新赋值,如果需要重新赋值,需要在函数内部使用global定义全局变量

代码实例1:list = ['global', 'pythontab.com']

def func1():

list.append('bbs.pythontab.com')

print(list)

func1()

print(list)

输出结果['global', 'pythontab.com', 'bbs.pythontab.com']

['global', 'pythontab.com', 'bbs.pythontab.com']

发现上面的list并没有使用global但是值却改变了, 说明列表是可以在局部被修改的

代码实例2:list = ['global', 'pythontab.com']

def func1():

list = ['docs.pythontab.com']

print(list)

func1()

print(list)

结果:['docs.pythontab.com']

['global', 'pythontab.com']

局部变量赋值不能改变全局变量的值

python local global_Python 关键字global全局变量详解相关推荐

  1. Python 关键字global全局变量详解

    转自:https://www.pinlue.com/article/2021/05/2000/0011605731500.html 变量作用域 一般在函数体外定义的变量成为全局变量,在函数内部定义的变 ...

  2. java中的global类,Drools语法篇之Global全局变量详解

    此语法是用来定义全局变量的,被用于提供应用程序对象的规则,一般来说,global是用于提供数据或者服务使用的规则,特别是应用程序服务中使用规则的后果,并返回数据规则, 全局变量不插入到工作记忆,因此全 ...

  3. Python实用技巧:global关键字的用法详解

    这篇文章主要介绍了python global关键字的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下: 想要更好的了解global关键字,首先 ...

  4. python全局变量global线程安全_对python多线程与global变量详解

    今天早上起来写爬虫,基本框架已经搭好,添加多线程爬取功能时,发现出错: 比如在下载文件的url列表中加入200个url,开启50个线程.我的爬虫-竟然将50个url爬取并全部命名为0.html,也就是 ...

  5. python之33个关键字详解_Python解析、提取url关键字的实例详解

    解析url用的类库: python2版本: from urlparse import urlparse import urllib python3版本: from urllib.parse impor ...

  6. python机械臂仿真_VTK与Python实现机械臂三维模型可视化详解

    三维可视化系统的建立依赖于三维图形平台, 如 OpenGL.VTK.OGRE.OSG等, 传统的方法多采用OpenGL进行底层编程,即对其特有的函数进行定量操作, 需要开发人员熟悉相关函数, 从而造成 ...

  7. python镜像下载包_python包详解

    干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...

  8. python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)

    很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...

  9. python可变参数的实验性_详解Python的三种可变参数

    可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...

最新文章

  1. 前端小项目之在线便利贴
  2. How do I open an editor on something that is not a file?
  3. css3 3d旋转兼容模式下,前端CSS3: 3D旋转的问题 (请水神和毒舌放过)
  4. 面试题01(C++)
  5. python获取工作日_python – 获取下一个工作日的日期
  6. 高并发秒杀——SpringBoot集成redis
  7. 彩色手绘情节人插画装饰素材,psd分层利于应用!
  8. mysql 表2符合表1,MySQL:表tbl_2_1_15已满
  9. 1024程序员的节日~
  10. 【androidjniNDk】详细介绍每一步,让你轻松掌握android JNI NDk
  11. Revit二次开发入门
  12. 为伊消得人憔悴,衣带渐宽终不悔(2)
  13. 计算机维修培训教材,计算机芯片级维中心(芯片级维修培训教材)b.doc
  14. python 面向对象 搬家具实例
  15. 正则表达式与re模块
  16. 【考研经验】中国科学技术大学软件学院考研经历及复试回忆
  17. 用python玩转数据测试答案_MOOC_用Python玩转数据_测试答案
  18. 抖音常见的几种违规行为,抖音新手应该注意防范:国仁楠哥
  19. 服务器如何从安全模式增加用户名,win10安全模式里怎么添加账户_win10 安全模式如何添加用户-win7之家...
  20. SQL Server数据库实操 第五波 完整性约束和触发器

热门文章

  1. 元旦海报设计素材|节日气氛PNG元素,满满中国风
  2. 刚入门的UI设计师,需要懂的图标设计规范?
  3. c语言线性顺序表,C语言程序——线性顺序表.doc
  4. JAVA调用接口简单封装,Mvp+Retrofit2+RxJava2 项目中使用的简洁封装
  5. 建议把英语改成选修的计算机老师,中小学“变动”,英语改为副科?老师没意见家长却愁眉不展...
  6. iframe带了token不显示_token是什么
  7. CI/CD(持续集成构建/持续交付):如何测试/集成/交付项目代码?(Jenkins,TravisCI)
  8. TCP/IP协议栈:TCP超时重传机制
  9. X Window Bitmaps And Pixmaps
  10. SeismicUnix:wtlib.c[小波变换库]