2017-04-18 29 views
1

プログラミングに慣れていないので、この問題を抱えていて、本当に助けてください!Python - 引数を他の関数の引数として渡す関数

my関数のパラメータの1つはオプションですが、別の関数に基づいて複数のデフォルト値をとることができます。両方の関数は同じ入力を受け取ります(他の関数も同じです)。私は下図のように関数を使用して、デフォルト値を割り当てるしようとすると:

def func(foo): 
    # returns different values of some variable k based on foo 

def anotherFunc(foo, bar, k=func(foo)): 
    # this is the same foo input as the previous function 

私は次のエラーを取得する:事がある

NameError: name 'foo' is not defined 

、ユーザーは、「任意の値を持つ「anotherFunc」を呼び出すことができます彼らが望むkは、事を複雑にする。他の関数の引数として引数を持つ関数を持つ方法はありますか?あるいは、私が以前の関数に基づいて 'k'の複数のデフォルト値を設定する方法はありますが、必要に応じてユーザーが独自の 'k'を選択できるようにしていますか?

ありがとうございます!関数を定義した瞬間に

def func(foo): 
    return foo 

def anotherfunc(foo, bar, k=None): 
    if k == None: 
     k = func(foo) 
    #process whatever 

答えて

0

foo最初の関数の引数のプレースホルダとして機能:

0

は、おそらくのような何かをしたいと思います。関数が呼び出されるまでは値はありません。その値は関数本体で次のようにアクセスできます。

def another_func(foo, bar, k=None): 
    if k is None: 
     k = func(foo) 
    ... 
関連する問題