热门标签 | 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 基础

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

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



推荐阅读
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍如何使用 Python 将一个字符串按照指定的行和元素分隔符进行两次拆分,最终将字符串转换为矩阵形式。通过两种不同的方法实现这一功能:一种是使用循环与 split() 方法,另一种是利用列表推导式。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • C++构造函数与初始化列表详解
    本文深入探讨了C++中构造函数的初始化列表,包括赋值与初始化的区别、初始化列表的使用规则、静态成员初始化等内容。通过实例和调试证明,详细解释了初始化列表在对象创建时的重要性。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
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社区 版权所有