Python中的全局变量和局部变量的区别(代码详解)

阿伟姑娘_3464

阿伟姑娘_3464

2019-03-16

6342人浏览

原创

全局变量是在函数外部定义和声明的变量,我们需要在函数内部使用它们。

#这个函数使用全局变量s
def f():  
    print s  
  
# 全局作用域
s = "I love Python"
f()

输出:

Shadows Python Sensei
Shadows Python Sensei

Python 最佳实践助手——代码规范、设计模式、性能优化、测试与类型注解。适用于编写或审查 Python 代码。

下载
I love Python

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

# 这个函数有一个与s同名的变量。
def f():  
    s = "Me too."
    print s  
  
# 全局作用域
s = "I love Python" 
f() 
print s

输出:

Me too
I love Python

在我们调用函数f()之前,变量s被定义为字符串“I love Python”。f()中唯一的语句是“print s”语句。由于没有本地s,将使用全局s的值。

问题是,如果我们改变函数f()内部的s值会发生什么?它会影响全局吗?

我们在下面的代码中测试它:

def f():  
    print s 
  
    # 如果我们在下面评论,这个程序不会显示错误。
    s = "Me too."
  
    print s 
  
#全局作用域
s = "I love Python" 
f() 
print s

输出:

Line 2: undefined: Error: local variable 's' referenced before assignment

为了使上述程序有效,我们需要使用“global”关键字。如果我们想要进行分配/更改它们,我们只需要在函数中使用全局关键字。打印和访问不需要全局。

Python“假设”我们想要一个局部变量,因为f()内部的赋值,所以第一个print语句抛出此错误消息。在函数内部更改或创建的任何变量都是本地的,如果它尚未声明为全局变量。要告诉Python,我们要使用全局变量,我们必须使用关键字“global”

如以下示例所示:

# 这个函数修改全局变量's' 
def f(): 
    global s 
    print s 
    s = "Look for Python"
    print s  
  
#全局作用域
s = "Python is great!" 
f() 
print s

输出:

Python is great!
Look for Python.
Look for Python.

一个很好的例子:

a = 1
  
# 使用global,因为没有本地'a' 
def f(): 
    print 'Inside f() : ', a 
  
#变量“a”被重新定义为局部变量
def g():     
    a = 2
    print 'Inside g() : ',a 
  
#使用全局关键字修改全局'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 的核心概念和高级技巧!

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

python

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

2220

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

229

24

全局变量怎么定义
全局变量怎么定义

本专题整合了全局变量相关内容,阅读专题下面的文章了解更多详细内容。

2025.09.18

3545

12

python 全局变量
python 全局变量

本专题整合了python中全局变量定义相关教程,阅读专题下面的文章了解更多详细内容。

2025.09.18

1450

13

c++ 全局变量
c++ 全局变量

本专题整合了c++全局变量的使用、定义、作用域等等内容,阅读专题下面的文章了解更多详细内容。

2026.03.17

179

17

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1518

5

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.04

2164

5

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

2023.10.24

5684

49

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

2023.11.24

4649

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程