美文网首页
Python for 变量作用域

Python for 变量作用域

作者: DebugWorld | 来源:发表于2020-09-10 15:40 被阅读0次
for x in range(5):
    pass

print(x)
# 打印x结果是: 4

def test():
    _list = []
    for i in range(4):
        _list.append(lambda: i)
    return _list


print([f() for f in test()])
# [3, 3, 3, 3]

上面代码输出的是 [3, 3, 3, 3],而不是[0, 1, 2, 3],这是因为,在Pyhton中是没有block这个概念的。

Python中的作用域只有四种,即LEGB规则:

  • Local:在lambda函数内或者def函数内部的变量
  • Enclosing-function:闭包的作用域(了解Python的闭包可以看《闭包初探》)
  • Global:全局作用域
  • Build-in:内建作用域

Python参考文档在for循环章节明确记录了这个行为:
For循环向目标列表里的变量赋值,[…]在该循环结束时,目标列表里的名字不会被删除,但如果该序列是空的,那么该循环完全没有向它们赋值。

相关文章

  • #抬抬小手学Python# Python 之作用域下的 glob

    global 和 nonlocal 作用域 该部分内容涉及 Python 变量作用域相关知识,变量作用域指的是变量...

  • python学习笔记|nonlocal/global

    python中引用变量的顺序为:当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变...

  • 变量作用域

    0. 命名空间 变量作用域1. 变量作用范围:可操作范围2. Python 是静态作用域,变量的作用域源于它在代码...

  • python的作用域

    前言  作用域是程序运行时变量可被访问的范围。 作用域  python变量的作用域很简单,就是LEGB:变量名引用...

  • Python基础重构-1.2数据类型

    1、变量和常量 变量作用域 Python的作用域一共有4种,分别是:L (Local) 局部作用域E (Enclo...

  • Python基础(十四): 函数作用域

    一、基本概念 1、变量的作用域 变量的作用范围: 可操作范围 Python是静态作用域, 也就是说在Python中...

  • Python的闭包与装饰器

    一、python的函数作用域 python的函数作用域的含义,简而言之,即函数执行时变量所在的作用域。在pytho...

  • Python装饰器与闭包!

    闭包是Python装饰器的基础。要理解闭包,先要了解Python中的变量作用域规则。 变量作用域规则 首先,在函数...

  • 第2模块第1章21函数—作用域

    作用域 在Python中函数就是一个作用域,局部变量放置在其作用域中 C Java中作用域{}已经生成,作用域向上...

  • Python变量作用域范围

    关键词: python;作用域; Variable Scope; 1、Python中能够改变变量作用域的代码段是d...

网友评论

      本文标题:Python for 变量作用域

      本文链接:https://www.haomeiwen.com/subject/zzepektx.html