函数名的使用

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 @   Sunzz  阅读(126)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示