python全局变量与局部变量的区别及使用

 更新时间:2023年12月20日 10:21:14   作者:X Y sawyer  
在python中定义和使用函数方法的时候,会遇到局部变量和全局变量,本文就来介绍一下python全局变量与局部变量的区别及使用,具有一定的参考价值,感兴趣的可以了解一下

在python中定义和使用函数方法的时候,会遇到局部变量和全局变量,这里主要是说明什么是局部变量,什么是全局变量,以及两者之间的区别。

首先两者最大的区别就是作用域不同,也可以说是命名空间不同,简单来说就是全局变量和局部变量他两的作用范围不一样。

全局变量和局部变量的定义:全局变量是在函数外定义的变量,局部变量是在函数方法内定义的变量

例如

a=1 
def func(): 
    b=2

这里的a就是全局变量,b就是局部变量。

知道这两者的定义之后,就要去理解他两的作用域不同。

可以将这里的作用域不同主要是分为:

1、函数内可以直接访问全局变量的

例如

a=1 
def func():
    b=2
    print(a)
func()
print(a)

添加图片注释,不超过 140 字(可选)

这里的输出是两个a的值1,这说明函数内是可以直接访问全局变量的

2、函数内不可以直接修改全局变量

a=1
def func():
    b=2
    a=a+1
    print(a)

添加图片注释,不超过 140 字(可选)

这里就会出现报错,这个报错就是表明函数方法内可以读取但是不可以去修改全局变量。

UnboundLocalError: local variable 'a' referenced before assignment

3、函数外部不可以直接访问局部变量

a=1
def func():
    b=2
    print(a)
func()
print(a)
Print(b)

报错NameError: name 'b' is not defined

这就是作用域做了一个限制。但对于以上两个问题,我们可以通过global来解决,分别把a和b使用global来声明一下即可,global a,b,就不会出现报错的情况了。

a=1
def func():
    global a,b
    b=2
    a+=1
    print(a)
print(b)

这里输出的a的值是2,这也就表明了修改全局变量

4、同名的局部变量会覆盖全局变量

a=1
def func():
    a=10
    print(a)
func()
print(a)

这里的输出是10,1,这个时候就是局部变量,它虽然名字和全局变量是一样的,但是它有一个查找优先级,先在自己的作用域中去找,如果找到了就直接打印出来了,如果找不到的话才会去全局变量中去找,所以说只要有同名的局部变量,就会覆盖全局变量。

到此这篇关于python全局变量与局部变量的区别及使用的文章就介绍到这了,更多相关python全局变量与局部变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • selenium3+python3环境搭建教程图解

    selenium3+python3环境搭建教程图解

    这篇文章主要介绍了selenium3+python3环境搭建教程图解,需要的朋友可以参考下
    2018-12-12
  • python使用线程封装的一个简单定时器类实例

    python使用线程封装的一个简单定时器类实例

    这篇文章主要介绍了python使用线程封装的一个简单定时器类,实例分析了Python线程的使用及定时器类的实现技巧,需要的朋友可以参考下
    2015-05-05
  • 使用Python的requests库进行网页数据抓取的详细教程

    使用Python的requests库进行网页数据抓取的详细教程

    网络爬虫是一种自动化程序,用于从互联网上抓取数据,无论是用于数据分析、市场研究、学术研究,还是搜索引擎的网页索引,爬虫技术都在现代互联网应用中发挥着重要作用,本文将通过 requests 库 来讲解如何进行基本的网页数据抓取,需要的朋友可以参考下
    2025-03-03
  • Python OpenCV形态学运算示例详解

    Python OpenCV形态学运算示例详解

    这篇文章主要为大家介绍了OpenCV中的几个形态学运算,例如:腐蚀&膨胀、开&闭运算、梯度运算、顶帽运算黑帽运算,感兴趣的可以了解一下
    2022-04-04
  • 使用Python画了一棵圣诞树的实例代码

    使用Python画了一棵圣诞树的实例代码

    这篇文章主要介绍了使用Python画了一棵圣诞树的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Pytorch在NLP中的简单应用详解

    Pytorch在NLP中的简单应用详解

    今天小编就为大家分享一篇Pytorch在NLP中的简单应用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 如何利用AJAX获取Django后端数据详解

    如何利用AJAX获取Django后端数据详解

    ajax一个前后台配合的技术,它可以让javascript发送http请求,与后台通信,获取数据和信息。下面这篇文章主要介绍了如何利用AJAX获取Django后端数据的相关资料,需要的朋友可以参考下
    2021-06-06
  • Python实现多元线性回归的梯度下降法

    Python实现多元线性回归的梯度下降法

    梯度下降法的机器学习的重要思想之一,梯度下降法的目标,是使得代价函数最小。本文主要和大家分享的是python实现多元线性回归的梯度下降法,感兴趣的可以了解一下
    2022-08-08
  • Python文件多线程/多进程机制详解

    Python文件多线程/多进程机制详解

    文章主要介绍了Python程序在运行时可能会自动创建多个线程的情况,包括Python内部的线程池、异步库、第三方库以及调试器自身的线程,文章还提供了判断线程来源的方法,并总结了手动创建线程的常见方式
    2026-01-01
  • Python数据自动化处理之数据清洗和报表生成详解

    Python数据自动化处理之数据清洗和报表生成详解

    这篇文章主要介绍了一个全自动数据处理流水线的Python实现方案,帮助用户解决日常数据处理痛点,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-03-03

最新评论