python中的全局变量与局部变量

1,局部变量与全局变量

1,定义

局部变量:就是在函数体内的变量,在python中冒号“:”后面的变量都是局部变量,当然局部与全局也是一个相对的概念。比如出现函数嵌套的情况。

全局变量:就是在模块中所有函数都可以调用的变量,一般在函数体外被定义。

 

2,使用过程

函数内的局部变量,在函数体外是不可以使用的,函数内的变量就是局部变量,只在函数体内生效。

python中的全局变量与局部变量

例如,这里的discount(price,rate)函数,两个形式参数price和rate,还有final_price都是函数的局部变量。

如果在函数体外使用就会出错。

 

全局变量,比如这里的old_price,rate和new_price都是全局变量。因此可以在函数体内访问他们。在python中,可以肆无忌惮地在函数体内部使用全局变量,但是如果在函数体内修改全局变量则会出错。

python中的全局变量与局部变量

 

python中的全局变量与局部变量

python中的全局变量与局部变量

其实,当在函数体内部调用全局变量时,是可以正常使用的,

但是当在函数体内部修改全局变量时,python是在函数体内部新创建了一个同名的局部变量,所以当我们在函数体内部打印该变量时,是修改后的值,但是当在程序外部打印正常的全局变量时,发现值并没有被修改。正如小甲鱼解释的一样。

 

如果一定要在函数体内部修改全局变量,可以在变量名前加 global关键字,如下所示:

python中的全局变量与局部变量

 

3,注意事项

注意:python出现这种现象是一种程序的保护机制,因为全局变量在很多地方都会使用,不建议在函数体内部修改全局变量,如果有这一类的操作,会导致程序很难维护。就像这里小甲鱼说的一样。

python中的全局变量与局部变量

 

如果你已经知道在函数中修改全局变量可能会导致可读性变差、出现莫名其妙的BUG、代码的维护成本成倍提高,但还是要坚持这么做,可以用global关键字来实现。

但是,如果遇到这种情况,思考一下,为什么要这么做,能不能把变量的位置挪到函数内部,让它变成局部变量。如果可以,就不要使用全局变量,然后再函数里修改的操作。

python中的全局变量与局部变量

原文链接:https://www.cnblogs.com/huayangshan/p/17350848.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中的全局变量与局部变量 - Python技术站

(0)
上一篇 2023年4月25日
下一篇 2023年4月25日

相关文章

  • 关于sys.stdout和print的区别详解

    关于sys.stdout和print的区别详解 在Python中,有多种方式可以将文本输出到控制台或文件,其中包括使用sys.stdout和print语句。虽然它们都可以用于输出文本,但它们之间存在一些重要的区别,下面我们将为您详细介绍这些区别。 sys.stdout的工作原理 sys.stdout是Python标准库中的一个对象,它代表着当前程序中需要标准…

    python 2023年6月3日
    00
  • 教你怎么用Python实现GIF动图的提取及合成

    下面是“教你怎么用Python实现GIF动图的提取及合成”的完整攻略。 1. 准备工作 Python 环境 首先需要确保你的电脑已经安装了 Python。如果没有安装,请前往Python 官网下载和安装最新版本的 Python。 安装必要的库 本文所用的库主要有 Pillow 和 imageio。可以在命令行中运行以下指令进行安装。 pip install …

    python 2023年5月19日
    00
  • 分享十个Python提高工作效率的自动化脚本

    分享十个Python提高工作效率的自动化脚本 Python是一种高级编程语言,它可以用于各种自动化任务,包括文件处理、数据分析、网络爬虫等。本文将分享十个Python提高工作效率的自动化脚本,包括如何批量重命名文件、如何自动发送邮件等内容。 1. 批量重命名文件 以下是一个使用Python批量重命名文件的示例: import os path = ‘/path…

    python 2023年5月15日
    00
  • Python实现的中国剩余定理算法示例

    Python实现中国剩余定理算法 中国剩余定理(Chinese Remainder Theorem,CRT)是一种求解同余方程组的方法,它的基本思想是:对于同余方程组,通过求解每个方程解再利用CRT求解整个方程组的解。Python中,可以使用sympy库实现中国剩余定理算法。本文详细讲解Python实现中国剩余定理算法的完整攻略,包括算法原理、Python实…

    python 2023年5月13日
    00
  • Python编码类型转换方法详解

    Python编码类型转换方法详解 Python是一种非常灵活的编程语言,拥有很多种不同的数据类型。在Python中,数据类型之间的转换是非常常见的操作。其中,编码类型转换是我们常常需要做的一种类型转换。在本篇文章中,我们将详细讲解Python编码类型转换的方法。 Unicode编码和字符串之间的转换 在Python中,字符串是使用Unicode编码表示的。U…

    python 2023年5月20日
    00
  • Python读取mat(matlab数据文件)并实现画图

    下面是Python读取mat文件并实现画图的完整攻略: 1. 载入matlab的数据 要读取matlab数据文件,我们需要使用Python中的科学计算库numpy和读取mat文件的库scipy.io。首先需要安装这两个库,可以使用pip命令进行安装。 !pip install numpy scipy 读取matlab文件时我们需要知道文件所在的完整路径,以及…

    python 2023年5月18日
    00
  • python 中open文件路径的选择问题解析

    在Python中,使用open函数打开文件时,需要指定文件的路径。文件路径的选择是一个重要的问题,不同的路径选择会影响程序的运行效果。本文将详细讲解Python中open文件路径的选择问题,包括两个示例。 文件路径的选择 在Python中,打开文件时,需要指定文件的路径。文件路径可以是绝对路径或相对路径。绝对路径是指文件在文件系统中的完整路径,相对路径是指文…

    python 2023年5月15日
    00
  • python实现二维插值的三维显示

    下面是详细讲解“python实现二维插值的三维显示”的完整攻略。 需求背景 二维插值是一种常见的数据处理方法,可以通过已知的数据点,推算出未知数据点。在数据处理和可视化中,常常需要将二维插值结果在三维空间中进行显示。因此,本文介绍用Python实现二维插值的三维显示的方法。 实现步骤 1. 准备数据 首先,需要准备数据,例如在一个网格上采样得到的二维函数数据…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部