[TOC] 一 函数对象 函数对象指的是函数可以被当做’数据’来处理,具体可以分为四个方面的使用,我们如下 插图:恶搞图26 1.1 函数可以被引用 >>> def add(x,y): ... return x+y ... >>> func=add >>> func(1,2) 3 1.2 函数可以作为容器类型的元素 >>> dic={'add':add,'max':max} >>> dic {'add': <function add at 0x100661e18>, 'max': <built-in function max>} >>> dic['add'](1,2) 3 1.3 函数可以作为参数传入另外一个函数 >>> def foo(x,y,func): ... return func(x,y) ... >>> foo(1,2,add) 3 1.4 函数的返回值可以是一个函数 >>> def bar(): ... return add ... >>> func=bar() >>> func(1,2) 3 插图:恶搞图27 二 闭包函数 2.1 闭与包 基于函数对象的概念,可以将函数返回到任意位置去调用,但作用域的关系是在定义完函数时就已经被确定了的,与函数的调用位置无关。 x=1 def f1(): def f2(): print(x) return f2 def f3():