在本文中,我们将学习 python 中将函数作为参数传递。函数可以接受多个参数,这些参数可以是对象、变量(相同或不同的数据类型)和函数。Python函数是第一个优雅的小工具。
在以下实例中,将要素分配给变量。此项目不再命名函数。这将获取由“shout”指向的特征对象,并创建指向它的第二个调用“yell”。
参数在特征调用括号之后是唯一的,我们可以添加尽可能多的参数; 用逗号分隔它们。
下面的示例有一个带有一个参数 (fname) 的函数。同时,该函数称为传递特征中使用的名称以打印整个调用。
示例 1: 在 python 中给出了一个传递函数的实例作为参数的例子 -
# -*- coding:UTF-8 -*-
# __author__ = 'yiibai.com'
def my_function(fname):
print(fname + " Id")
my_function("HuaWei")
my_function("IPhone")
运行结果:
HuaWei Id
IPhone Id
示例 2:在这里,给出 python 中传递函数的另一个实例作为参数的例子 -
# -*- coding:UTF-8 -*-
# __author__ = 'yiibai.com'
def yiout(text):
return text.upper()
print(yiout('Hello World'))
yell = yiout
print(yell('Hello Yiibai'))
运行结果:
HELLO WORLD
HELLO YIIBAI
包裹函数。包装函数或装饰器用于包装另一个函数,并在不永久改变被包装函数的行为的情况下对其进行扩展。在装饰器中,该函数被当作另一个函数的参数,并在包装函数中调用。
例子1: 下面给出一个包装函数的实例作为python的参数的例子-
# -*- coding:UTF-8 -*-
# __author__ = 'yiibai.com'
def hello_decorator(func):
def inner1():
print("Hello yicoders, it is before the function execution")
func()
print("It is after the function execution")
return inner1
def function_to_be_used():
print("It is inside of this function")
function_to_be_used = hello_decorator(function_to_be_used)
function_to_be_used()
运行结果:
Hello yicoders, it is before the function execution
It is inside of this function
It is after the function execution
Lambda包装函数。在Python中,一个无名函数的做法是,该字符没有调用。def
关键字定义了普通函数,而 lambda
关键字用于创建匿名函数。这个特征会有各种参数,但会评估并返回最简单的表达式。
一个lambda函数也可以有每一个其他的字符作为参数。下面的例子表明,一个主要的Lambda特性超过了其他每一个Lambda函数作为参数。
示例1: 在python中给出了一个lambda封装函数的实例作为参数的例子如下 -
square = lambda a:a * a
cube = lambda func:func**3
print ("The square of 5 is:"+str (square (5)))
print ("The cube of "+str (square (5)) +" is :" +str (cube (square (5))))
运行结果如下:
The square of 5 is:25
The cube of 25 is :15625
高阶函数 - 由于函数是对象,可以把它们作为参数传递给其他特征。以其他特征为参数的能力也被称为高阶函数。后面的实例创建了一个greet
特征,它把一个特征作为一个问题。
例子1: 在python中给出一个高阶函数的实例作为参数的例子如下 -
# -*- coding:UTF-8 -*-
# __author__ = 'yiibai.com'
def shout(text):
return text.upper()
def whisper(text):
return text.lower()
def greet(function):
greeting = function("Hello, We are created by a higher order function passed as an argument.")
print(greeting)
greet(shout)
greet(whisper)
运行结果如下:
HELLO, WE ARE CREATED BY A HIGHER ORDER FUNCTION PASSED AS AN ARGUMENT.
hello, we are created by a higher order function passed as an argument.
总结:在Python中,我们可以将函数对象传递给其他函数。函数可以被传播。Python 有内置的函数,要求把函数指定为一个或多个参数,这样就可以在以后调用它。