首页 > 分享 > 从局部变量和全局变量开始全面解析Python中变量的作用域

从局部变量和全局变量开始全面解析Python中变量的作用域

最新推荐文章于 2024-10-26 15:01:01 发布

进阶程序员阿福 于 2020-02-24 21:59:36 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

无论是以类为基础的面相对象编程,还是单纯函数内部变量的定义,变量的作用域始终是Python学习中一个必须理解掌握的环节,下面我们从局部变量和全局变量开始全面解析Python中变量的作用域,需要的朋友可以参考下
理解全局变量和局部变量
1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量。例如:

num = 100 def func(): num = 123 print num func() 12345

输出结果是123。说明函数中定义的变量名num是一个局部变量,覆盖全局变量。再例如:

num = 100 def func(): num += 100 print num func() 12345

输出结果是:UnboundLocalError: local variable ‘num’ referenced before assignment。提示错误:局部变量num在赋值前被应用。也就是说该变量没有定义就被错误使用。由此再次证明这里定义的是一个局部变量,而不是全局变量。

2.函数内部的变量名如果是第一次出现,且出现在=符号后面,且在之前已被定义为全局变量,则这里将引用全局变量。例如:

num = 100 def func(): x = num + 100 print x func() 12345

输出结果是200。如果变量名num在之前没有被定义为全局变量,则会出现错误提示:变量没有定义。例如:

def func(): x = num + 100 print x func() 1234

输出结果是:NameError: global name ‘num’ is not defined。

3.函数中使用某个变量时,如果该变量名既有全局变量也有局部变量,则默认使用局部变量。例如:

num = 100 def func(): num = 200 x = num + 100 prinx x func() 123456

输出结果是300。

4.在函数中将某个变量定义为全局变量时需要使用关键字global。例如:

num = 100 def func(): global num num = 200 print num func() print num 1234567

输出结果分别是200和200。这说明函数中的变量名n

相关知识

Perl中的变量作用范围 local, my, our与全局变量
MOOC —— Python语言基础与应用 by 北京大学 第六章 计算和控制流(二)
App Inventor移动应用开发标准教程3
Python常见的错误以及其解决方案
java之标示符、变量学习(一)
java方法里面直接写花括号(块作用域)
手绘花卉图
3012C语言
编码规范参考
【Think Python】Python笔记(十一)字典

网址: 从局部变量和全局变量开始全面解析Python中变量的作用域 https://m.huajiangbk.com/newsview835028.html

所属分类:花卉
上一篇: 基于微信小程序的校园心声表白墙系
下一篇: 花语传情:东软学子自制花束表白母