python里面变量作用域是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python里面变量作用域是啥?相关的知识,希望对你有一定的参考价值。

变量作用域:python可以直接查找名称到对象的映射(命名空间)的部分。

python有built–in、global、enclosing、local这四种作用域

built–in:内建作用域,包含了内建的变量和关键字。

global:全局作用域,定义在所有函数外,当前模块(.py源文件)的全局变量。

enclosing:闭包函数外的函数(非局部也非全局),比如有一个函数a,a里有另一个函数b,对于b里的变量来说,a中的作用域就是enclosing。

local:局部作用域,脚本最内层,比如函数里。

参考技术A 它指的是变量的有效范围。变量按照作用范围分为两类,分别是全局变量和局部变量。

python局部变量和全局变量作用域--021

全局与局部变量

 

1、在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。

2、全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。

3、当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

 

实例一:(局部变量)

 

def changename(name):

    print("change before",name)

    name = "Robin wen"     #这个函数就是这个变量的作用域,这个变量只在这个函数中生效===>>局部变量

    print("change after",name)

name = "robin"

changename(name)

print(name)

  

#我们使用上面的函数将robin传入函数中进行修改为Robin wen,但是最后输出的效果依然是robin

输出结果:

change before robin

change after Robin wen

robin

 

实例二:(全局变量)

在函数程序中引用全局变量

school = "oldboy"

def stu():

    global school

    print("before the school is:",school)

    school = "bj"

stu()

print("after the school is:",school)

  

以上是关于python里面变量作用域是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 c:set 将参数传递给 jsp:include? JSP中变量​​的作用域是啥?

Python变量作用域

java 定义变量的作用是啥?

变量的四种作用域是?

Python3作用域(局部变量全局变量)

python局部变量和全局变量作用域--021