如何将一个函数作为参数并调用它?

2024-05-15 00:06:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我的任务是:“编写一个名为operate的函数,它以2个名为a,b的整数作为参数,并编写一个名为func的函数,它以2个整数作为参数。还要编写函数addsubmuldiv,这些函数接受2个整数参数并执行与其名称对应的操作并打印结果。调用operate(a, b, func)应该导致对func(a, b)的调用。我已经完成了前四个部分,但是我还停留在如何实现operate上。以下是我目前的代码:

# this adds two numbers given
def add(a,b):
    print (a + b)

# this subtracts two numbers given
def sub(a,b):
    print (b - a)

# this multiplies two numbers given
def mul(a,b):
    print (a * b)

# this divides two numbers given
def div(a,b):
    print (a / b) 

Tags: 函数div名称add参数def整数this
1条回答
网友
1楼 · 发布于 2024-05-15 00:06:50

要实现这一点,您需要return函数中的一些内容,而不仅仅是打印一些内容。这使您可以稍后使用结果。要做到这一点,只需使用return语句和一些表达式:

def add(a, b):
    return a + b

def sub(a, b):
    return a - b 

def mul(a, b):
    return a * b 

def div(a, b):
    return a / b

我已经更改了sub操作的顺序,以便更符合减法的一般定义

现在编写一个operate函数实际上相当简单。您已经得到了两个部分:签名应该是operate(a, b, func),您应该调用func(a, b)。实际上,这几乎是它最终的全部内容-您需要做的只是再次return它(如果您愿意,您也可以print它在这里):

def operate(a, b, func):
    return func(a, b)

现在可以这样做:

print(operate(3, 2, add))
print(operate(3, 2, sub))
print(operate(3, 2, mul))
print(operate(3, 2, div))

这将导致输出:

5
1
6
1.5

在一篇关于标准库的评论中——你看,所有这些都已经由Python实现了。可以将前四个函数定义替换为:

from operator import add, sub, mul, truediv as div

只剩下定义operate和做一些测试

相关问题 更多 >

    热门问题