首页 > 技术文章 > python函数对象

SkyOceanchen 2019-08-11 21:30 原文

函数对象

函数是第一类对象, 即函数可以被当作数据处理。

def func():
    print('from func')
print(func)#func 指向一块内存地址,函数名
#输出:
<function func at 0x000002AD89B5E5E8>

一、函数对象的四大功能

  1. 引用(变量名可以被引用,函数名也可以被引用)
def func():
    print('from func')
x = 'hello chen'
y = x
f = func
print(f,func)
#输出:
<function func at 0x000001CFCD9AE5E8> <function func at 0x000001CFCD9AE5E8>


  1. 当作一个参数传给一个函数
def func():
    print('from func')
def foo(m):
    m()
foo(func)
#输出:
from func


  1. 可以当作函数的返回值

    def func():
        print('from func')
    def foo(x):
        return x
    
    res = foo(func)
    
    print(res)
    res()
    #输出:
    <function func at 0x000002036E0F4F78>
    from func
    
  2. 可以当作容器类元素

# 变量名可以放入容器类数据类型
def func():
    print('from func')
a= 1
lt = [1, 2, a, func]
lt[-1]()
#输出:
from func

推荐阅读