热门标签 | 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工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • Qt QTableView 内嵌控件的实现方法
    本文详细介绍了在 Qt QTableView 中嵌入控件的多种方法,包括使用 QItemDelegate、setIndexWidget 和 setIndexWidget 结合布局管理器。每种方法都有其适用场景和优缺点。 ... [详细]
  • 本文详细介绍了流编辑器sed中的G、H、g、h命令,探讨了它们的工作原理及应用场景。通过实例解析和图解分析,帮助读者掌握这些高级命令的使用方法。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
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社区 版权所有