在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 变量的作用域相关推荐

  1. Python变量的作用域的使用

    在写代码的时候,免不了要使用变量.但程序中的一个变量并不一定是在哪里都可以被使用,根据情况不同,会有不同的"有效范围". 看这样一段代码: def func(x):print (' ...

  2. 案例详解Python变量的作用域是怎么使用的,面试必学

    在写代码的时候,免不了要使用变量.但程序中的一个变量并不一定是在哪里都可以被使用,根据情况不同,会有不同的"有效范围". 看这样一段代码: def func(x):print (' ...

  3. python变量的作用域

    作用域又可以被称为命名空间,指变量起作用的范围.Python变量作用域可以分为四种,分别为局部作用域.嵌套作用域.全局作用域.内置作用域. 作用域 英文 简写 局部作用域 Local L 嵌套作用域 ...

  4. python变量的作用域及生命周期_Python——变量的作用域

    原创声明:本文系博主原创文章,转载及引用请注明出处. 1. 在编程语言中,变量都有一定的作用域,用来限定其生命周期,且不同类型的变量作用域不同. 在Python中解释器引用变量的顺序(优先级)为:当前 ...

  5. 初学__Python——Python 可重用结构:Python模块

    目录 一.模块的基本用法 一.导入模块 二.编写一个模块 二.在哪里查找模块 三.是否需要编译模块 四.模块也可独立运行 五.如何查看模块提供的函数名 Python中的模块实际上就是包含函数或者类的 ...

  6. 初学__Python——Python数据类型之文件

    文件也可以看作是Python中的数据类型.当使用Python的内置函数open打开一个文件后就返回一个文件对象. open(filename, mode, bufsize) filename:要打开的 ...

  7. 初学__Python——Python中文支持、Python计算器

    目录 一.Python对中文的支持 二.简单实用的Python计算器 一.Python对中文的支持 在Python中,可以在各种编码间相互转换. 如果在交互式命令中使用中文,即便不做处理,一般也不会出 ...

  8. 初学__Python——Python 最简单的函数—用 lambda 声明函数

    用 lambda 表达式来声明函数,是Python中一类比较特殊的声明函数的方式,lambda 来源于 LISP 语言,使用 lambda 可以声明一个匿名函数.所谓匿名函数是指所声明的函数没有函数名 ...

  9. 初学__Python——Python 函数参数的使用

    目录 一.有默认值的参数 示例:计算参数的立方值,其参数的默认值为 5 示例:向指定的参数传递值 二.参数的传递方式 三.如何传递任意数量的参数 四.用参数返回计算结果 参数让函数更有价值,在Pyth ...

最新文章

  1. 什么“取消引用”指针意味着什么?
  2. 预训练模型:BERT深度解析《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
  3. The Excel Connection Manager is not supported in the 64-bit version of SSIS, as no OLE DB provider i
  4. linux下g++和gcc_Linux中gcc和g ++有什么区别?
  5. linux怎么修改sftp默认端口,转:linux 修改sftp服务默认提供者sshd的session timeout
  6. linux图形界面为英文,Linux下“英文控制台 中文图形界面”的实现
  7. 一些java,spring boot图解
  8. 查看java运行时参数_查看JVM运行时参数
  9. [Yii Framework] yii中如何不加载layout
  10. 数据结构十大排序算法(python)
  11. IE无法执行JavaScript解决办法
  12. 移动端页面开发资源总结
  13. javac 编译JavaWeb项目
  14. 【正点原子FPGA连载】第一章FPGA简介 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  15. 【金融手册】什么是本票、汇票、支票、银行承兑汇票、系统性、非系统性风险、巴塞尔协议、QDII...
  16. Echarts地图深入+散点
  17. Minimum spanning tree
  18. python 概率分布模型_使用python的概率模型进行公司估值
  19. 微信小程序——手机号登录
  20. 难处理的js单引号与双引号问题解决

热门文章

  1. 【FI学习笔记】客户发票收款清账
  2. 装运点确认失败的排查
  3. SAP Business One和SAP All-in-One
  4. 面怎么煮更好吃?你必须知道的7个小技巧
  5. SAP在快速消费品行业中的实施方案
  6. linux 源码 调试,开发一个Linux调试器(六):源码级逐步执行
  7. 【Python教程】 re 模块中findall() 函数返回值展现方式的用法详解
  8. Python面试题:如何判断字典a在字典b
  9. python max和min函数的高级用法
  10. Python中@staticmethod和@classmethod的作用和区别