1

関数があるとしますdef foo(A, B)

ここで、別の関数があります。bar(func)ここで、funcは1つの変数のみを受け取る関数です。fooとして渡したいのですfuncが、2番目の変数Bは常に300に固定されています。どうすればよいですか?

4

2 に答える 2

3

あなたが使用するlambda

bar(lambda x: foo(x,300))

基本的に、

func = lambda x: x*x

多かれ少なかれ同等です:

def func(x):
   return x*x

したがって、この場合、次とほぼ同等の何かを使用します。

def new_func(x):
    return foo(x,300)

new_func次に、に相当するものをに渡しbarます。

于 2013-02-21T04:20:10.773 に答える
2

Lambdaが最も簡単ですが、より複雑なケースにはfunctools.partialを使用することもできます。

import functools

bar(functools.partial(foo, B=300))
于 2013-02-21T04:21:37.600 に答える