600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 简述global关键字的作用_二十三 Python变量作用域(局部变量和全局变量)

简述global关键字的作用_二十三 Python变量作用域(局部变量和全局变量)

时间:2019-02-27 14:03:33

相关推荐

简述global关键字的作用_二十三 Python变量作用域(局部变量和全局变量)

变量的作用域

在Python中,变量的作用域指的是变量起作用的范围,不同的作用域内,虽然变量的名字相同,但是它们互不影响。变量按照作用域范围可分为局部变量全局变量

全局变量

全局变量是在函数定义和类的定义的外面声明的变量。其作用域为定义的模块,从定义开始直到模块结束。全局变量的主要功能和特点如下:

全局变量降低了函数的通用性和可读性。应当尽量避免使用全局变量。全局变量一般用来定义常量;如果要想在函数内部使用或改变全局变量的值,需要使用global关键字声明一下。

movie_name ='射雕英雄传' #定义全局变量movie_namedef movie(): # 未用global声明会报错(因为下面使用了global会对这里有影响) # movie_name='大红灯笼高高挂' #SyntaxError: name 'movie_name' is assigned to before global declaration # 使用前也要global声明 #print(movie_name) # SyntaxError: name 'movie_name' is used prior to global declaration global movie_name # 如果要想在函数movie()中改变全局变量的值,需要增加global关键字声明 print(movie_name) # 返回:射雕英雄传 movie_name='天龙八部'# 调用函数movie()print(movie_name) #返回天龙八部

全局变量的作用域与使用

局部变量

在函数体内或者函数的形参声明的变量均为局部变量, 局部变量的作用域与特点:

局部变量的引用比全局变量要快,效率要高,因此,优先使用局部变量;如果局部变量和全局变量同名,则在函数体隐藏全局变量,只使用同名的局部变量

同名时,全局变量会被隐藏

局部变量和全局变量性能测试

import mathimport timedef global_varible_test(): start = time.time() for i in range(100000000): math.sqrt(20) #全局变量调用 end = time.time() print(f'全局变量耗时{end-start}秒')def local_varible_test(): f = math.sqrt #局部变量定义 start = time.time() for i in range(100000000): f(20) #局部变量调用测试 end = time.time() print(f'局部变量耗时{end-start}秒')# 全局调用global_varible_test()# 局部变量调用测试local_varible_test()

全局变量与局部变量在数据量很大情况下局部变量效率高

下节预告:lambda表达式和匿名函数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。