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

yizhihongxing

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日

相关文章

  • python被修饰的函数消失问题解决(基于wraps函数)

    Python被修饰的函数消失问题解决(基于wraps函数) 在Python中,我们经常会使用装饰器来增强函数的功能,但是使用装饰器可能会引发函数名称、文档字符串、参数列表等元信息丢失的问题。 例如,下面这个被装饰的函数丢失了元信息: def my_decorator(func): def wrapper(): """Wrappe…

    python 2023年5月14日
    00
  • 有关Python的22个编程技巧

    有关 Python 的 22 个编程技巧 Python 是一种非常流行的编程语言,拥有丰富的库和工具包,可以应用于各种领域的开发工作。在本文中,我将为大家介绍一些 Python 编程技巧,帮助你更高效地编写代码。 技巧1:使用列表推导式 列表推导式是一种简单而强大的 Python 特性。通过使用列表推导式,可以快速创建列表。以下是一个简单的例子: numbe…

    python 2023年5月14日
    00
  • Python爬虫部分开篇概念讲解

    先对“Python爬虫开篇概念讲解”给出一个完整的攻略,包括以下几个方面: 一、 什么是Python爬虫 Python爬虫是一种自动获取互联网信息的方法,是通过编写脚本程序模拟浏览器行为自动化地获取互联网上的数据,并存储到本地计算机或其他数据处理系统中。Python爬虫可以大大提高数据获取的效率和精度,是数据分析、机器学习等领域必不可少的技能。 二、Pyth…

    python 2023年5月14日
    00
  • python 文件查找及内容匹配方法

    下面是详细的攻略: Python文件查找及内容匹配方法 在Python中,我们可以使用os模块和re模块来查找文件并匹配文件内容。本文将介绍Python文件查找及内容匹配的方法,并提供两个示例说明。 文件查找 在Python中,我们可以使用os模块的walk函数来遍历目录中的所有文件,并使用fnmatch模块的fnmatch函数来匹配文件名。下面是一个示例,…

    python 2023年5月14日
    00
  • python绘制柱状图的方法

    下面我将为你介绍关于Python绘制柱状图的方法。包括绘制柱状图前的数据处理、可视化设置以及绘图模块的使用。 准备数据 首先我们需要准备数据,数据存放在一个列表中。例如: numbers = [23, 45, 12, 56, 45, 35] 导入绘图模块和可视化设置 绘制柱状图可以使用Python中的matplotlib模块,需要首先导入该模块并进行可视化设…

    python 2023年5月19日
    00
  • python list转矩阵的实例讲解

    以下是“Python中list转矩阵的实例讲解”的完整攻略。 1. 什么是矩阵 在数学中,矩阵是一个由数值排列成的矩形阵列。矩阵可以用于表示线性方程组、向量空间、图像处理等领域。在Python中,可以使用列表来表示矩阵。 2.中list转矩阵 在Python中,可以使用列表来表示矩阵。列表中的每个元素都是一个列表,表示矩阵的一。下面是3×3的矩阵的示例: m…

    python 2023年5月13日
    00
  • Python中plt.scatter()函数的常见用法小结

    当使用Python进行数据可视化时,常会用到matplotlib这个包。其中的plt.scatter()函数就是用来绘制散点图的。本文将对plt.scatter()函数的常见用法进行小结。 1. plt.scatter()函数的基本用法 plt.scatter()函数的基本语法如下: plt.scatter(x, y, s=None, c=None, mar…

    python 2023年6月3日
    00
  • Python爬虫基础之初次使用scrapy爬虫实例

    下面我将为你详细讲解“Python爬虫基础之初次使用scrapy爬虫实例”的完整攻略。 什么是Scrapy Scrapy是一个基于Python的高级网络爬虫框架,其可用于爬取各种网站,并从中抽取出结构化数据。使用Scrapy可以快速方便地实现对目标网站的数据抓取,甚至是高级的数据抽取,加速WEB爬取的研究与开发。 Scrapy的安装和使用 使用scrapy实…

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