、简述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表达式和匿名函数
、简述global关键字的作用_二十三、Python变量作用域(局部变量和全局变量)相关推荐
- 、简述global关键字的作用_在C#编程中global关键字的作用及其用法
在C#编程中,global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它.今天就为大家展示下global关键字的作用及其用法,希望对大家学习C#编程有所帮助. 假设 ...
- 、简述global关键字的作用_详解static inline关键字
详解static inline关键字 本文章为知乎用户 @徐yang哟 原创,禁止抄袭! 灵感来源 在查stm32的LL库部分函数的API时,有时会查到这种函数: __STATIC_INLINE vo ...
- 、简述global关键字的作用_GLOBAL和$GLOBALS[]的讲解
一 Global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 但是在函数体内定义的global变量,函数体 ...
- python变量作用域图解_简单了解Python变量作用域正确使用方法
在写代码的时候,免不了要使用变量.但程序中的一个变量并不一定是在哪里都可以被使用,根据情况不同,会有不同的"有效范围". 看这样一段代码: def func(x): print ( ...
- python中的常量可以修改吗_深入理解Python变量与常量
变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.常量是一块只读的内存区域,常量一旦被初始化就不能被 ...
- java中static关键字的作用_面试|static 关键字有什么作用
今天主要学习下Java语言中的static关键字. static关键字的含义及使用场景 static是Java50个关键字之一.static关键字可以用来修饰代码块表示静态代码块,修饰成员变量表示全局 ...
- python中匿名函数的作用_什么是Python中的匿名函数
匿名函数 lambda x , y : x+y 1.匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的. 2.匿名函数的参数规则.作用域关系与有名函数是一样的. 3.匿名函数的函数体通常应该 ...
- 下列变量名不符合python命名规范的是_下列合法的Python变量名是( )
[其它]主题插画设计(1920*1080PX) 表情包设计(30个) 专业形象设计(10个) 三类任选其一,每一类都要有设计说明. [单选题]下面代码的输出结果是________ x=10 y=3 p ...
- python变量定义大全_详解python变量与数据类型
这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...
最新文章
- 在markdown里面插入特殊的符号
- sql复杂查询语句总结
- mongo 多条件筛选_如何制作提交按钮,实现多条件筛选
- 使用Java迭代器修改数据时要小心
- php 图片无法删除,php如何删除上传的图片
- android studio聊天跳转_Android 第三方应用跳转到QQ进行聊天
- Tensorflow安装错误ERROR: Cannot uninstall ‘wrapt‘.
- Java JDK 10:下一代 Java 有哪些新特性?
- 实时监控Cat之旅~对请求是否正常结束做监控(分布式的消息树)
- EXPLAIN查看SQL执行计划
- Vue 源码学习过程 - Observer/Dep/Watcher三者实现数据双向绑定
- Win10喇叭图标出现红叉提示未安装任何音频输出设备
- 智慧运维平台之全息监控
- 使用JavaScript克隆元素
- unity游戏开发为什么工作这么难找
- Hive中orderBy,sortBy,distribute by,cluster by,group by
- 什么是大数据(个人理解)
- ImportError: cannot import name ‘_gi‘ from partially initialized module ‘gi‘ ubuntu 终端无法启动
- 光纤收发器怎么使用?
- 下载imageLib工具包批量转换.flo文件为png
热门文章
- Android Browser学习七 书签历史模块: 书签UI的实现
- rhcs实现mysql高可用。仲裁磁盘
- 网管日志-06.08.16
- mysql时间 gt_关于Mysql 5.6 TIMESTAMPDIFFgt;=和gt;的一个问题 - SegmentFault 思否
- Python基础篇:用Python简简单单写个星空大战,可不能用来摸鱼啊~
- python如何写生日快乐图片_Python 生活第一周母校生日快乐
- mysql数据库命令大全菜鸟_mysql常用命令
- linux 常用压缩格式,Linux常见压缩格式之压缩与解压
- 动态时间规整算法(DTW)通俗易懂
- Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符