全局变量和局部变量:
局部变量:
定义在函数内部的变量称为局部变量(函数的形参也是局部变量)
局部变量只能在函数内部使用
局部变量在函数调用时才能够被创建,在函数调用之后会自动销毁
在函数内首次对变量赋值是创建局部变量,再次为变量赋值是修改局部变量的绑定关系
在函数内部的赋值语句不会对全局变量造成影响
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个模块范围内访问
全局变量:
定义在函数外部,模块内部的变量称为全局变量
全局变量,所有的函数都可以直接访问(但函数内部不能将其直接赋值)
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()
发表评论