Python中的全局变量和局部变量、函数变量、函数的嵌套定义

Python中的全局变量和局部变量、函数变量、函数的嵌套定义

全局变量和局部变量:

局部变量:

定义在函数内部的变量称为局部变量(函数的形参也是局部变量)

局部变量只能在函数内部使用

局部变量在函数调用时才能够被创建,在函数调用之后会自动销毁

在函数内首次对变量赋值是创建局部变量,再次为变量赋值是修改局部变量的绑定关系

在函数内部的赋值语句不会对全局变量造成影响

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个模块范围内访问

全局变量:

定义在函数外部,模块内部的变量称为全局变量

全局变量,所有的函数都可以直接访问(但函数内部不能将其直接赋值)

globals 和 locals 函数

globals() 返回当前全局作用域内变量的字典,要在函数内访问全局变量:globals()['全局变量名']

locals()  返回当前局部作用域内变量的字典

如:

a = 1 

b = 2

c = 3

def f1(c,d):

e = 300

print(locals())  -> {'d':200,'e':300,'c':100}

print(globals())

f1(100,200)

函数变量:

函数名是变量,它在创建函数时绑定一个函数

如:

def f1():

print('f1f1')

f2 = f1

f2()  -> 输出 f1f1

一个函数可以作为参数传递到另一个函数里去

函数可以返回另一个函数

函数的嵌套定义:

是指一个函数里用def语句来创建其它的函数

如:

def fn_outer():

print('fn_outer被调用')

def fn_inner():

print('fn_inner被调用')

fn_inner()

fn_inner()

print('fn_outer调用结束')

fn_outer()


最后编辑于:2019/10/03作者: 牛逼PHP

发表评论