[Day_29]函式与递回_(8)

函式视为物件

Python中函式视为物件,以函式名称当作物件,函式名称加上()才会执行该函式,范例如下。

def add(a,b):
    return a+b
def run(func,x,y):
    return func(x,y)
k = run(add,10,20)
print('k=',k)

函式run的第1个参数func为函式物件,使用func()呼叫执行func所指定的函式,run函式以「run(add,10,20)」执行,则func会使用函式物件add取代,run函式中的func(x,y)相当於add(x,y),可以看出Python把函式当成物件使用,上述程序执行结果如下。

#output
k= 30

函式lambda

函式若只有一行,可以转换成函式lambda,函式lambda的转换格式如下。

lambda 输入的参数:函式的定义

我们可以将函式add转换成函式lambda,如下。

#原始函式
def add(a,b):
    return a+b

#转换为lambda
lambda a,b:a+b

函式run的第一个参数func为函式物件,使用func()呼叫执行func所指定的函式,run函式已「run(lambda a,b:a+b,10,20)」执行,则func会使用函式lambda所定义的函式取代,函式run内的func(x,y)相当於函式lambda以x与y为输入参数,上述程序执行结果如下。

#input
def run(func,x,y):
    return func(x,y)
k = run(lambda a,b:a+b,10,20)
print('k=',k)

#output
k= 30

以上是今天的介绍,
也应该是我这个挑战的最後一天介绍了,
明天我想写一些自己这30天的想法,
很抱歉讲得很浅
/images/emoticon/emoticon02.gif


<<:  #29 Electron 打包应用程序

>>:  Day 28 - State Monad III

删除Windows事件纪录--听起来简单做起来难的销声匿迹

今天要研究是接续上篇的Windows XML Event Log (EVTX),要进入他的事件纪录本...

Day-6 Build a CPU

Build a CPU tags: IT铁人 抽象化设计 建构一台电脑时,他要能执行所有指定ISA的...

当责:实践篇

前言 昨天简单介绍了当责,今天来看看它的好处,以及实践上可能遇到的问题。 再做点补充 上一篇文章提到...

Day 18 - Using ASCX File to Create Pagination Function with ASP.NET Web Forms C# 建立使用者控制项 - 制作分页功能

=x= 🌵 Web Forms 使用者控制项-制作分页功能。 Pagination 分页功能介绍 :...

C#_建立mdf失败_存取被拒

原本小弟我在WinCE上使用SqlCeEngine都挺好用的 奈何最近专案需要使用PC 於是我查了一...