Python变量教程之全局变量和局部变量

 更新时间:2022年08月17日 11:28:16   作者:海拥  
这篇文章主要介绍了Python变量教程之全局变量和局部变量,文章围绕主题展开详细的晌午内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言

全局变量是那些没有在任何函数内部定义并具有全局范围的变量,而局部变量是那些在函数内部定义的变量,其范围仅限于该函数。换句话说,我们可以说局部变量只能在初始化它的函数内部访问,而全局变量在整个程序和每个函数内部都可以访问。局部变量是那些在函数内部初始化并且仅属于该特定函数的变量。它不能在函数之外的任何地方访问。让我们看看如何创建一个局部变量。

示例: 创建局部变量

def f():

	# local variable
	s = "I love python"
	print(s)


# 驱动程序代码
f()

输出:

I love python

如果我们尝试在函数外部使用这个局部变量,那么让我们看看会发生什么。

例子:

def f():
	
	# local variable
	s = "I love python"
	print("Inside Function:", s)

# 驱动程序代码
f()
print(s)

输出:

NameError: name 's' is not defined

全局变量

这些是在任何函数之外定义的并且可以在整个程序中访问的那些,即在每个函数的内部和外部。让我们看看如何创建一个全局变量。

示例: 定义和访问全局变量

# This function uses global variable s
def f():
	print("Inside Function", s)

# Global scope
s = "I love python"
f()
print("Outside Function", s)

输出:

Inside Function I love python
Outside Function I love python

变量 s 被定义为全局变量,既可以在函数内部使用,也可以在函数外部使用。

注意: 由于没有局部变量,因此将使用全局变量的值,但请确保局部变量和全局变量应具有相同的名称。

现在,如果有一个同名的变量在函数内部以及全局初始化怎么办。现在问题来了,局部变量是否会对全局变量产生一些影响,反之亦然,如果我们在函数 f() 中更改变量的值会发生什么?它也会影响全局变量吗?我们在下面的代码中对其进行测试:

# 该函数有一个名称与 s 相同的变量。
def f():
	s = "Me too."
	print(s)


# 全局范围
s = "I love python"
f()
print(s)

输出:

Me too.
I love python

如果在函数范围内也定义了具有相同名称的变量,那么它将仅打印函数内部给出的值,而不是全局值。 

问题是,如果我们尝试更改函数内部的全局变量的值会怎样。让我们用下面的例子来看看。

例子:

# 该函数使用全局变量 s
def f():
	s += 'GFG'
	print("Inside Function", s)


# Global scope
s = "I love python"
f()

输出:

UnboundLocalError: local variable 's' referenced before assignment

为了使上述程序正常工作,我们需要使用“global”关键字。让我们看看这个全局关键字是什么。

全局关键字

如果我们想要进行赋值或更改全局变量,我们只需要在函数中使用global 关键字。 打印和访问不需要全局。由于在 f() 中对 s 的赋值,Python“假设”我们需要一个局部变量,因此第一条语句会抛出错误消息。如果没有将其声明为全局变量,则在函数内部更改或创建的任何变量都是局部变量。要告诉 Python,我们要使用全局变量,我们必须使用关键字 “global” ,如以下示例所示: 

示例 1: 使用全局关键字

# 此函数修改全局变量's'
def f():
	global s
	s += ' HY'
	print(s)
	s = "Look for Haiyong Python Section"
	print(s)

# 全局范围
s = "Python is great!"
f()
print(s)

输出:

Python is great! HY
Look for Haiyong Python Section
Look for Haiyong Python Section

现在没有歧义了。 

示例 2: 使用全局变量和局部变量

a = 1

# 使用全局,因为没有局部“a”
def f():
	print('Inside f() : ', a)

# 变量“a”被重新定义为局部变量
def g():
	a = 2
	print('Inside g() : ', a)

# 使用 global 关键字修改全局 'a'
def h():
	global a
	a = 3
	print('Inside h() : ', a)


# 全局范围
print('global : ', a)
f()
print('global : ', a)
g()
print('global : ', a)
h()
print('global : ', a)

输出:

global :  1
Inside f() :  1
global :  1
Inside g() :  2
global :  1
Inside h() :  3
global :  3

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

相关文章

  • python中functools.lru_cache的具体使用

    python中functools.lru_cache的具体使用

    本文主要介绍了python中functools.lru_cache的具体使用,通过functools.lru_cache,你可以轻松优化具有重复计算的函数,大大提高代码的执行效率
    2024-09-09
  • Python制作动态字符图的实例

    Python制作动态字符图的实例

    今天小编就为大家分享一篇关于Python制作动态字符图的实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 基于 Django 的手机管理系统实现过程详解

    基于 Django 的手机管理系统实现过程详解

    这篇文章主要介绍了基于 Django 的手机管理系统过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python实现自动化整理文件的示例代码

    Python实现自动化整理文件的示例代码

    这篇文章主要介绍了如何通过Python编程完成文件的自动分类、文件和文件夹的快速查找、重复文件的清理、图片格式的转换等常见工作,需要的可以参考一下
    2022-09-09
  • python实现机器人行走效果

    python实现机器人行走效果

    这篇文章主要为大家详细介绍了python实现机器人行走效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 使用Python一键实现屏幕监控软件

    使用Python一键实现屏幕监控软件

    这篇文章主要为大家详细介绍了如何使用Python一键实现屏幕监控软件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-08-08
  • Python pysnmp使用方法及代码实例

    Python pysnmp使用方法及代码实例

    这篇文章主要介绍了Python pysnmp使用方法及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python常用特殊方法实例总结

    Python常用特殊方法实例总结

    这篇文章主要介绍了Python常用特殊方法,结合实例形式总结分析了Python常见的__init__、__new__、__del__、__str__、__repr__等特殊方法与描述符相关功能及使用技巧,需要的朋友可以参考下
    2019-03-03
  • Python Bleach保障网络安全防止网站受到XSS(跨站脚本)攻击

    Python Bleach保障网络安全防止网站受到XSS(跨站脚本)攻击

    Bleach 不仅可以清理 HTML 文档,还能够对链接进行处理,检查是否是合法格式,并可以使用白名单来控制哪些 HTML 标签、属性是安全的,因此非常适合用于清洁用户输入的数据,确保网站安全
    2024-01-01
  • django session完成状态保持的方法

    django session完成状态保持的方法

    这篇文章主要介绍了django session完成状态保持的方法,使用登录页面演示session的状态保持功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论