函数(二)

一 函数对象

1 函数对象的四大功能

​ 1.引用

def func():
    print('from func')
print(func)
f = func
print(f)

​ 2.当作参数传给一个函数

def foo(m):
    m()

foo(func)

​ 3.可以当作函数的返回值

def foo(x):
    return x

res = foo(func)
print(res)
res()

​ 4.可以当作容器类型的元素

def func():
    print('from func')
l = [x]

function_list = [func]
function_list[0]()

二 函数嵌套

1 函数的嵌套定义:

​ 函数内部定义的函数,无法在函数外部使用内部定义的函数

2 函数的嵌套调用

​ 一个函数里又调用另一个函数,这就是函数嵌套调用

三 名称空间与作用域

1 名称空间

​ Python所有有关命名的操作都是在操作名称空间,例如变量名,函数名

​ (1):内置名称空间:Python解释器提供好的功能,解释器启动跟着一起启动,是全局作用域

​ (2):全局名称空间:Python中顶行写的,不在函数内部定义的,都是全局名称空间,在运行的时候会产生名称空间,是全局作用域

​ (3):局部名称空间:在一个小范围定义,只能当前范围及其子空间内运行,例如在函数内部定义的,是局部作用域

​ 加载顺序:内置--》全局--》局部

​ 查找顺序:从当前所在位置开始查找,如果当前所在的位置为局部名称空间,则查找顺序为局部--》全局--》--内置

​ (4):nonlocal关键字:修改局部作用域中的变量

​ (5):global关键字:修改局部作用域中的变量

原文地址:https://www.cnblogs.com/einsam/p/10963861.html