Python局部变量与全局变量区别原理解析

1、局部变量

name = "Yang Li"

def change_name(name):

print("before change:",name)

name = "你好"

print("after change", name)

change_name(name)

print("在外面看看name改了么?",name)

输出:

before change: Yang Li

after change 你好

在外面看看name改了么? Yang Li

2、全局变量

NAME = "alex"

def yangjian():

global NAME # 已经声明,NAME就是全局的的那个变量

print('1我的名字', NAME)

NAME = "land" # 修改 全局的变量

print('2我的名字', NAME)

def qupengfei():

name = "yang"

print('3我的名字', NAME)

yangjian()

qupengfei()

输出:

1我的名字 alex

2我的名字 land

3我的名字 yang

######## 全局变量变量名大写

######## 局部变量变量名小写

#函数中 优先读取局部变量,能读取全局变量,无法对全局变量重新赋值;但是对于可变类型,可以对内部元素进行操作;如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值

3、nonlocal

name = "刚娘"

def weihou():

name = "陈卓"

def weiweihou():

nonlocal name # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止

name = "冷静"

print(name)

weiweihou()

print(name)

print(name)

weihou()

print(name)

# 刚娘

# 陈卓

# 陈卓

# 刚娘

全局与局部变量

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

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

当全局变量与局部变量同名时:

在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

函数返回值

要想获取函数的执行结果,就可以用return语句把结果返回

注意:

函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束

如果未在函数中指定return,那这个函数的返回值为None

嵌套函数

name = "Alex"

def change_name():

name = "Alex2"

def change_name2():

name = "Alex3"

print("第3层打印",name)

change_name2() #调用内层函数

print("第2层打印",name)

change_name()

print("最外层打印",name)

以上是 Python局部变量与全局变量区别原理解析 的全部内容, 来源链接: utcz.com/z/335902.html

回到顶部