函数名的使用

1 函数名是一个特殊的变量

def func():
    print(666)

print(func)
结果为:
  <function func at 0x00000000004C3E18> 即就是func的内存地址

 2  函数名可以当做变量赋值

def func():
    print(666)

func1=func
f2=func1
f3=f2
f3()
结果为: 666

3 函数名可以当做容器类数据类型的元素

def func1():
    print('in func1')

def func2():
    print('in func2')

def func3():
    print('in func3')

l1=[func1,func2,func3]

for i in l1:
    i()
结果为:
in func1
in func2
in func3

4  函数名可以当做函数的参数

def func(x):
    x()
    print('in func')

def func1():
    print('in func1')

func(func1)

结果为:
in func1
in func

# 5,函数名可以当做函数的返回值。

def wrapper(step):
    num = 1
    def inner():
        nonlocal num
        num+=step
        print(num)
    return inner #内部函数名,当做外层函数的返回值    

 另一个示例:

def func1():
    print("This is func1")
def func2(x):
    print("This is func2")
    return x
ret=func2(func1)  此行相当于 ret=func1
print(ret)
结果为:
This is func2
<function func1 at 0x0000020417DD3E18>

 



posted @ 2019-01-02 18:50  Sunzz  阅读(131)  评论(0)    收藏  举报