函数基础

函数基础

函数对象

函数对象四大功能

  1. 引用

    f = func
    print(f)
  2. 当作参数传给一个函数

    len(x)
    def foo(m):
        m()
    foo(func)
  3. 可以当作返回值

    def foo(x):
        return x
    
    res = foo(func)
    print(res)
    
  4. 可以当作容器类型的元素

    def func():
        pass
    func_lis = [func]
    func_lis = [0]()

函数的嵌套

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

def f1():
    def f2():
        print('sad')
    f2()
f2()

名称空间

内置名称空间:

启动python时产生的空间,里面存放print,while,is等

在启动时生效,在关闭时失效

全局名称空间:

创建文件时产生,定义的函数等,全局定义的函数全局可用,如x,func,l,z

在文件执行时生效,结束时失效

局部名称空间:

定义函数时产生,存在函数内部

文件调用函数期间生效,在函数执行结束后失效

查找顺序

局部名称空间-->全局名称空间-->内置名称空间(找不到报错)

加载顺序

内置名称空间-->全局名称空间-->局部名称空间

作用域

全局作用域:

全局作用域,包含内置名称空间和全局名称空间

局部作用域:

零时存储,只包含局部名称空间

ps:作用域在函数定义阶段就已经固定死了,与函数的调用无关.

关键字

global:修改全局作用域中的变量

nonlobal:修改局部作用域中的变量,

posted @ 2019-11-11 22:27  Mr-Allen  阅读(93)  评论(0编辑  收藏  举报