热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python全局变量含义_如何最简单、通俗地理解Python的局域变量、全局变量?

目录:一、笔记二、我的自学路线三、笔记目录一、笔记①局部变量是在函数内部定义的变量,只能在函数内部使用,在函数外不可调用。②全局变量是在函

目录:

一、笔记

二、我的自学路线

三、笔记目录

一、笔记

① 局部变量是在函数内部定义的变量,只能在函数内部使用,在函数外不可调用。

② 全局变量是在函数外部定义的变量(没有定义在某一个函数内),但是函数内部和外部都可以使用这个变量。

③ 大都不推荐使用全局变量因为其可变范围太大,导致程序不好维护。

④ 对于不可变类型的全局变量来说,如num=,要在函数中修改需要global声明,那么才可以在函数外打印函数中已经修改后的值。

⑤ 对于可变类型的全局变量来说,要在函数中修改可以不使用global声明,可以在函数外直接打印函数内修改后的值。

⑥ 无论是可变类型,还是不可变类型的局域变量,都不可以在函数外调用,需要用global声明局域变量,那么才可以在函数外打印局域变量,并且用global后在函数外还可继续进行修改。

# 可变类型的全局变量b,例如:

def ChangeInt(b):

b.append(6)

print("函数内b:",b) # 打印出来为[1,2,3,4,6]

b = [1,2,3,4]

ChangeInt(b)

print("函数内b:",b) # 打印出来为[1,2,3,4,6]

运行结果:

函数内b: [1, 2, 3, 4, 6]

函数内b: [1, 2, 3, 4, 6]

# 不可变类型的全局变量b,例如:

def ChangeInt(b):

b = 10

print("函数内b:",b) # 打印出来为10

b = 2

ChangeInt(b)

print("函数内b:",b) # 打印出来为2

运行结果:

函数内b: 10

函数内b: 2

# 报错,因为用global,不能用入口参数传入变量,参数为一个值,不是变量

def ChangeInt(b):

global b

b = 10

print("函数内b:",b) # 打印出来为10

b = 2

print("进入函数前b:",b) # 打印出来为2

ChangeInt(b)

print("退出函数后b:",b) # 打印出来为10

运行结果:

File "", line 3

global b

^

SyntaxError: name 'b' is parameter and global

# 不可变类型的全局变量b,例如:

def ChangeInt():

global b

b = 10

print("函数内b:",b) # 打印出来为10

b = 2

print("进入函数前b:",b) # 打印出来为2

ChangeInt()

print("退出函数后b:",b) # 打印出来为10

运行结果:

进入函数前b: 2

函数内b: 10

退出函数后b: 10

# 报错,不可变类型的局域变量a,不可以在函数外调用

def ChangeInt():

a = 10

print("函数内b:",a) # 打印出来为10

ChangeInt()

print("退出函数后b:",a) # 打印出来为10

运行结果:

函数内b: 10

--------------------------------------------------------------------------- NameError Traceback (most recent call last) in 4 print("函数内b:",a) # 打印出来为10 5 ChangeInt() ----> 6 print("退出函数后b:",a) # 打印出来为10 NameError: name 'a' is not defined

# 不可变类型的局域变量d,例如:

def ChangeInt():

d = [1,2]

print("函数内b:",d) # 打印出来为10

ChangeInt()

print("退出函数后b:",d) # 打印出来为10

运行结果:

函数内b: [1, 2]

--------------------------------------------------------------------------- NameError Traceback (most recent call last) in 4 print("函数内b:",d) # 打印出来为10 5 ChangeInt() ----> 6 print("退出函数后b:",d) # 打印出来为10 NameError: name 'd' is not defined

# 不可变类型的局域变量b,例如:

def ChangeInt():

global a

a = 10

print("函数内b:",a) # 打印出来为10

ChangeInt()

print("退出函数后b:",a) # 打印出来为10

b = 11

print("修改后b:",a) # 打印出来为11

运行结果:

函数内b: 10

退出函数后b: 10

修改后b: 11

二、我的自学路线

01 安装Python编辑器 [ 已整理 ]

02 Python编译器快捷键 [ 已整理 ]

03 Python基础 [ 已整理 ]

04 Python难点 [ 已整理 ]

05 Python常用的库 [ 已整理 ]

06 爬虫 [ 整理ing ]

07 NLP [ 看视频ing ]

三、笔记目录

1) Python 编辑器

2) Python 基础

( ……更多笔记,见专栏 )

"♥我的笔记,希望对你有帮助♥"



推荐阅读
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • Linux设备驱动程序:异步时间操作与调度机制
    本文介绍了Linux内核中的几种异步延迟操作方法,包括内核定时器、tasklet机制和工作队列。这些机制允许在未来的某个时间点执行任务,而无需阻塞当前线程,从而提高系统的响应性和效率。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • GIMP 2.99.2 发布:UI 采用 GTK3 实现、原生支持高分屏和 Wayland
    开源项目评选最后一周,手里的5票再不用就没用了https:www.oschina.netprojecttop_cn_2020GIMP2.99.2已发布,同时这也标志着GIMP3.0的到来,其中最显著的变化是从GTK2过渡到GTK3工具包。基于 ... [详细]
  • Qt QTableView 内嵌控件的实现方法
    本文详细介绍了在 Qt QTableView 中嵌入控件的多种方法,包括使用 QItemDelegate、setIndexWidget 和 setIndexWidget 结合布局管理器。每种方法都有其适用场景和优缺点。 ... [详细]
  • 本文详细介绍了流编辑器sed中的G、H、g、h命令,探讨了它们的工作原理及应用场景。通过实例解析和图解分析,帮助读者掌握这些高级命令的使用方法。 ... [详细]
author-avatar
耿佳霖彦婷淑云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有