美文网首页
变量与作用域

变量与作用域

作者: Joening | 来源:发表于2024-04-02 10:21 被阅读0次

变量与作用域

全局与局部变量

  • 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
  • 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数。
  • 当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其它地方全局变量起作用。

名称空间namespace 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方
名称空间共3种,分别如下

locals:
是函数内的名称空间,包括局部变量和形参
globals:
全局变量,函数定义所在模块的名字空间
builtins:
内置模块的名字空间
作用域(scope)
通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
不同变量的作用域不同就是由这个变量所在的命名空间决定的。

作用域查找顺序LEGB
locals -> enclosing function -> globals -> builtins
locals 是函数内的名字空间,包括局部变量和形参
enclosing 外部嵌套函数的名字空间
globals 全局变量,函数定义所在模块的名字空间
builtins 内置模块的名字空间
如何在函数里修改全局变量?

name = "noah luo"
def change_name():
    global name
    name = "noah is luo gang"
    print("after change", name)
change_name()
print("在外面看看name改了么?", name)

相关文章

  • 作用域与变量提升

    作用域与变量提升 作用域 JS中变量的作用域有全局作用域和局部作用域两种,作用域简单来讲就是变量与函数的可访问范围...

  • js中作用域与作用域链

    js中作用域与作用域链 作用域 *作用域基本概念 作用域一般指变量的作用范围,变量分为全局变量和局部变量,对应的作...

  • JavaScript 作用域和作用域链

    JavaScript 作用域 作用域就是变量与函数的可访问范围。在JavaScript中,变量的作用域有全局作用域...

  • JavaScript作用域学习笔记

    作用域是变量与函数的可访问范围,作用域控制着变量与函数的可见性和生命周期。变量的作用域有两种:全局作用域和局部作用...

  • 作用域和作用域链

    作用域和作用域链 作用域 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在Java...

  • 作用域与作用域链

    作用域与作用域链 一、作用域 变量分为全局变量和局部变量,全局变量就是指该变量的作用域为当前文档,也就是说全局变量...

  • 从 JavaScript 作用域说开去

    目录 1.静态作用域与动态作用域 2.变量的作用域 3.JavaScript 中变量的作用域 4.JavaScri...

  • JS面试3 - 作用域

    变量作用域 分类1.1 静态作用域 又称词法作用域 与变量定义位置有关,与程序执行顺序无关image.png1.2...

  • 作用域

    何为作用域 任何编程语言都有作用域的概念,简单来说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可...

  • PHP变量作用域

    变量作用域:1,全局作用域global,2,局部作用域,3,静态作用域 1,与js相似,变量写在函数以外叫做全局变...

网友评论

      本文标题:变量与作用域

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