Python将值传递给返回语句函数

Python将值传递给返回语句函数,python,lambda,return,Python,Lambda,Return,首先,很抱歉这个令人困惑的标题,但这是我唯一能想到的描述它的方式。我最近收到的一篇课程作业问了一个问题,就是用一个参数(x)定义一个函数,这个函数返回另一个参数(y),这个参数本身将返回x*y。我们被要求使用普通函数或lambda函数(我选择了lamdas)来写这篇文章,写下: def create_multiplier (x): return lambda y: y * x input1 = int(raw_input("Please enter your initial number

首先,很抱歉这个令人困惑的标题,但这是我唯一能想到的描述它的方式。我最近收到的一篇课程作业问了一个问题,就是用一个参数(x)定义一个函数,这个函数返回另一个参数(y),这个参数本身将返回x*y。我们被要求使用普通函数或lambda函数(我选择了lamdas)来写这篇文章,写下:

def create_multiplier (x):
   return lambda y: y * x

input1 = int(raw_input("Please enter your initial number for our multiplier"))
multi = create_multiplier(input1)
input2 = int(raw_input("Please enter your second number for our multiplier"))
print input1, " times by ", input2, " = " ,multi(input2)
但是我现在很好奇他们怎么期望我们只使用函数来实现它,起初我想也许你会在第一个函数中将你的第一个数字传递给x,然后再将一个数字传递给我们的第二个函数,因为我们在第一个函数中返回第二个函数,我们可以像使用嵌套变量一样使用x。很快就被击落了


我理解如果你不愿意回答,因为这是课程,但这让我好奇,你是如何在不预设lambda中的x的情况下实现它的,也许我只是奇怪地看着它,它非常明显。感谢您的回复

lambda
只是一个烦人的问题;-)编写函数的快捷方式(
def
)。那么比如说,

def create_multiplier(x):
    def inner_function(y):
        return x*y
    return inner_function
做同样的事情


后来:不太一样了。您的lambda实际上返回
y*x
,而不是
x*y
;-)

lambda是一个讨厌的东西;-)编写函数的快捷方式(
def
)。那么比如说,

def create_multiplier(x):
    def inner_function(y):
        return x*y
    return inner_function
做同样的事情


后来:不太一样了。您的lambda实际上返回
y*x
,而不是
x*y
;-)

看,这就是我所说的我本应该猜到的东西,但这是对东西的过度分析,它们在两个函数上的运行方式,一个返回另一个,等等,一直试图通过分别定义两个函数然后互相调用来实现,他们不应该说我可以在彼此之间定义它。非常感谢你,这就是我的意思,我本应该猜到的,但这是对东西的过度分析,他们对两个函数的处理方式,一个返回另一个,以此类推,继续尝试通过分别定义两个函数,然后从彼此调用它们,他们不应该说我可以在彼此之间定义它。非常感谢你为什么你所有的句子都用上了?很抱歉,我从来没听说过这个词,你能解释一下吗?就是当你把所有的句子连在一起,没有逗号或其他东西的时候,这真的很烦人。啊,很抱歉,这就是我习惯的写作方式,下次我会考虑到我的句子可能会有点冗长。为什么你的句子都用上了?很抱歉,我从来没听说过这个词用上了,你能解释一下吗?就是当你把所有的句子都这样连在一起,没有逗号或任何东西的时候,这真的很烦人。啊,对不起,我已经习惯了写作的方式,下次我会考虑到我的句子可能会有点冗长。