返回顶部
首页 > 资讯 > 后端开发 > Python >Python 如何访问外围作用域中的变量
  • 556
分享到

Python 如何访问外围作用域中的变量

变量作用Python 2022-06-04 18:06:45 556人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

在表达式中引用变量时,python 会按照如下的顺序遍历各个作用域,寻找该变量: 当前函数作用域 任何外围作用域(比如包含当前函数的其他函数) global 作用域,即代码所在的模块的作用域

在表达式中引用变量时,python 会按照如下的顺序遍历各个作用域,寻找该变量:

当前函数作用域 任何外围作用域(比如包含当前函数的其他函数) global 作用域,即代码所在的模块的作用域

如果上述作用域内都找不到变量,就会报 NameError 异常。

但是对变量赋值时,规则会有所不同。

如果当前作用域变量已存在,那么其值会被替换。 如果不存在,则会视为在当前作用域定义新变量,而不是向外围作用域中寻找。

如下函数


def function():
  flag = True
  def helper():
    flag = False
  helper()
  print flag

function()

由于 helper 中变量是赋值,这里 flag 输出仍为 True。习惯了 c 语言之类静态类型语言,这种设计起初会感到困惑,但其可以有效地防止局部变量污染函数外的环境。

需求总是多样的,一定有程序员想在赋值时访问外围作用域。如果是 Python2,他可以这么做


def function():
  flag = [True]
  def helper():
    flag[0] = False
  helper()
  print flag

function()

先用 flag[0] 是读操作,产生一次变量引用,寻找到外围作用域中 flag,这时候再赋值 flag[0] = False 便不会新定义变量了。

如果是 python3,则可以使用 nonlocal 关键字。


def function():
  flag = True
  def helper():
    nonlocal flag
    flag = False
  helper()
  print flag

function()

--结束END--

本文标题: Python 如何访问外围作用域中的变量

本文链接: https://lsjlt.com/news/14249.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 如何访问外围作用域中的变量
    在表达式中引用变量时,Python 会按照如下的顺序遍历各个作用域,寻找该变量: 当前函数作用域 任何外围作用域(比如包含当前函数的其他函数) global 作用域,即代码所在的模块的作用域 ...
    99+
    2022-06-04
    变量 作用 Python
  • jsp怎么访问作用域变量
    在JSP中,可以通过以下方式访问作用域变量:1. 访问请求作用域(request scope)变量:使用EL表达式`${}`来访问请...
    99+
    2023-09-22
    jsp
  • Python中变量的作用域如何使用
    前言变量的作用域是指程序代码能够访问该变量的区域,如果超出该区域,再访问时就会出现错误。在程序中,一般会根据变量的 “有效范围” 将变量分为 “全局变量” 和 “局部变量”。一、局部变量局部变量是指在函数内部定义并使用的变量,它只在函数内部...
    99+
    2023-05-14
    Python
  • Python中变量的作用域
    一、变量作用域的含义 变量的作用域说白了就是变量的值从哪里获取,或者说变量取值的地方 我们在写代码过程中会用到很多变量,这些变量会出现在各种代码块中,有的出现在函数块里,有的在函数块外,例如: def n2(): a = 1 ...
    99+
    2023-01-30
    变量 作用 Python
  • 如何在python中修改作用域的变量
    如何在python中修改作用域的变量?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pytho...
    99+
    2023-06-14
  • Python中的变量作用域是如何定义的?
    Python中的变量作用域是如何定义的?在Python中,变量的作用域是指变量生效的范围,也就是变量可以被访问和操作的范围。Python中的变量作用域分为全局作用域和局部作用域两种。全局作用域指的是在整个程序中都可以访问和操作的变量。在Py...
    99+
    2023-10-26
    变量 作用域 定义
  • python变量在作用域如何使用
    这篇文章主要介绍“python变量在作用域如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python变量在作用域如何使用”文章能帮助大家解决问题。1、全局作用域变量在局部作用域未定义(赋值或...
    99+
    2023-06-30
  • Python中变量的作用域详解
    目录1、作用于的概念2、局部变量3、全局变量4、变量的查找5、作用域中可变数据类型变量6、多函数程序执行流程总结1、作用于的概念 变量作用域指的是变量生效的范围,在Python中一共...
    99+
    2024-04-02
  • python变量的作用域一
    #6.2变量的作用域,是变量的可访问范围,也称为命名空间。在第一次#给变量赋值时,python创建变量。第一次给变量赋值的位置决定了变量的作用域。#作用域类型#一个程序通常包含了变量、函数和其他语句。变量和函数涉及可访问范围。一个程序中的变...
    99+
    2023-01-31
    变量 作用 python
  • C++中如何使用变量作用域
    C++中如何使用变量作用域,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C++变量作用域的使用一定要注意,一般是以一对花括号范围作为一个作用域,例如一下一段函数代码:Voi...
    99+
    2023-06-17
  • bash 循环中变量作用范围的问题分析
    先来看一段错误的代码。 #!/bin/bashfor x in `ls */.*/.*`cat $x|do echo $xwhile read line do c=`echo $line|awk -...
    99+
    2022-06-04
    变量 作用 bash
  • Python中的变量和作用域详解
    作用域介绍 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量; E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的; G...
    99+
    2022-06-04
    变量 详解 作用
  • Python中变量的作用域怎么使用
    这篇文章主要介绍“Python中变量的作用域怎么使用”,在日常操作中,相信很多人在Python中变量的作用域怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中变量的作用域怎么使用”的疑惑有所...
    99+
    2023-07-06
  • python中什么是变量作用域
    这篇文章给大家介绍python中什么是变量作用域,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动...
    99+
    2023-06-14
  • Python变量的作用域详解
    目录总结每个变量都有自己的作用域,在作用域外使用该变量非法 函数体内的变量为函数的局部变量,在函数体外不可使用 >>>def f(): x=5 >&...
    99+
    2024-04-02
  • Python编程中闭包的变量作用域问题解析
    目录闭包闭包中的变量闭包 ​ 在我们使用返回函数的时候,由于我们在一个函数中需要返回另一个函数,因此,我们在这个函数中就需要重新定义一个函数。而这样,就造成了我们的函数嵌...
    99+
    2024-04-02
  • Python中变量的作用域的具体使用
    目录前言一、局部变量二、全局变量前言 变量的作用域是指程序代码能够访问该变量的区域,如果超出该区域,再访问时就会出现错误。在程序中,一般会根据变量的 “有效范围&rdqu...
    99+
    2023-03-13
    Python 变量作用域 Python 作用域
  • Python中变量的作用域实例分析
    这篇“Python中变量的作用域实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中变量的作用域实例分析”文...
    99+
    2023-06-29
  • 怎么在java中使用lambda访问外部变量
    今天就跟大家聊聊有关怎么在java中使用lambda访问外部变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web M...
    99+
    2023-06-14
  • python中变量的作用域类型有哪些
    python中变量的作用域类型有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作