初学__Python——Python 变量的作用域
在Python中,不同的函数可以具有相同的参数名。在函数中已经声明过变量名,在函数外还可以继续使用。在脚本运行的过程中,其值并不相互影响。
def fun1(x): # 声明一个函数a = [1] # 定义一个名为 a 的列表a.append(x)print(a)fun1(2) # 调用函数,输出函数中列表的值a = [2, 3, 4] # 在函数外定义一个名为 a 的列表值
print(a) # 输出函数中名为 a 的列表值
注:函数调用结果和直接输出结果的值是不一样的。
上述代码中,两个同名的列表之所以值不同,是因为它们处于不同的作用域里。在Python中,作用于可以分为内置作用域、全局作用域和局部作用域。
内置作用域——是Python预先定义的
全局作用域——是所编写的整个脚本
局部作用域——是在某个函数内部范围
上述代码中,函数中的列表 a 处于局部作用域中。而函数外的列表 a 处于全局作用域内。局部作用域内变量的改变并不影响全局作用域内的变量,除非通过引用的形式传递参数。
在函数中使用函数外的变量,可以在变量名前使用 global 关键字,如下:
def fun( x ): # 声明函数global a # 使用 global 关键字声明全局变量return a + xa = 5 # a 为全局变量,即 fun 函数中的 a
print(fun(3)) # 输出调用函数的值
a = 2 # 修改 a 的值
print(fun(3)) # 再次输出调用函数的值
两次输出结果:
初学__Python——Python 变量的作用域相关推荐
- Python变量的作用域的使用
在写代码的时候,免不了要使用变量.但程序中的一个变量并不一定是在哪里都可以被使用,根据情况不同,会有不同的"有效范围". 看这样一段代码: def func(x):print (' ...
- 案例详解Python变量的作用域是怎么使用的,面试必学
在写代码的时候,免不了要使用变量.但程序中的一个变量并不一定是在哪里都可以被使用,根据情况不同,会有不同的"有效范围". 看这样一段代码: def func(x):print (' ...
- python变量的作用域
作用域又可以被称为命名空间,指变量起作用的范围.Python变量作用域可以分为四种,分别为局部作用域.嵌套作用域.全局作用域.内置作用域. 作用域 英文 简写 局部作用域 Local L 嵌套作用域 ...
- python变量的作用域及生命周期_Python——变量的作用域
原创声明:本文系博主原创文章,转载及引用请注明出处. 1. 在编程语言中,变量都有一定的作用域,用来限定其生命周期,且不同类型的变量作用域不同. 在Python中解释器引用变量的顺序(优先级)为:当前 ...
- 初学__Python——Python 可重用结构:Python模块
目录 一.模块的基本用法 一.导入模块 二.编写一个模块 二.在哪里查找模块 三.是否需要编译模块 四.模块也可独立运行 五.如何查看模块提供的函数名 Python中的模块实际上就是包含函数或者类的 ...
- 初学__Python——Python数据类型之文件
文件也可以看作是Python中的数据类型.当使用Python的内置函数open打开一个文件后就返回一个文件对象. open(filename, mode, bufsize) filename:要打开的 ...
- 初学__Python——Python中文支持、Python计算器
目录 一.Python对中文的支持 二.简单实用的Python计算器 一.Python对中文的支持 在Python中,可以在各种编码间相互转换. 如果在交互式命令中使用中文,即便不做处理,一般也不会出 ...
- 初学__Python——Python 最简单的函数—用 lambda 声明函数
用 lambda 表达式来声明函数,是Python中一类比较特殊的声明函数的方式,lambda 来源于 LISP 语言,使用 lambda 可以声明一个匿名函数.所谓匿名函数是指所声明的函数没有函数名 ...
- 初学__Python——Python 函数参数的使用
目录 一.有默认值的参数 示例:计算参数的立方值,其参数的默认值为 5 示例:向指定的参数传递值 二.参数的传递方式 三.如何传递任意数量的参数 四.用参数返回计算结果 参数让函数更有价值,在Pyth ...
最新文章
- 什么“取消引用”指针意味着什么?
- 预训练模型:BERT深度解析《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
- The Excel Connection Manager is not supported in the 64-bit version of SSIS, as no OLE DB provider i
- linux下g++和gcc_Linux中gcc和g ++有什么区别?
- linux怎么修改sftp默认端口,转:linux 修改sftp服务默认提供者sshd的session timeout
- linux图形界面为英文,Linux下“英文控制台 中文图形界面”的实现
- 一些java,spring boot图解
- 查看java运行时参数_查看JVM运行时参数
- [Yii Framework] yii中如何不加载layout
- 数据结构十大排序算法(python)
- IE无法执行JavaScript解决办法
- 移动端页面开发资源总结
- javac 编译JavaWeb项目
- 【正点原子FPGA连载】第一章FPGA简介 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【金融手册】什么是本票、汇票、支票、银行承兑汇票、系统性、非系统性风险、巴塞尔协议、QDII...
- Echarts地图深入+散点
- Minimum spanning tree
- python 概率分布模型_使用python的概率模型进行公司估值
- 微信小程序——手机号登录
- 难处理的js单引号与双引号问题解决