2017-04-18 135 views
1

我是編程新手,我一直被困在這個問題上,真的很想找一些幫助!Python - 將參數作爲參數傳遞給其他函數中的參數

我的函數中的一個參數是可選的,但可以基於另一個函數採用多個默認值。這兩種功能都採用相同的輸入(等等)。當我嘗試分配使用功能默認如下圖所示:

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',如果他們想要的話?

謝謝!

回答

0

foo充當佔位符的第一個函數參數。在功能被調用之前它是沒有價值的,因爲它的值可以在函數體中訪問,如下所示:

def another_func(foo, bar, k=None): 
    if k is None: 
     k = func(foo) 
    ... 
0

你可能會想要做的是這樣的:在定義函數的時刻

def func(foo): 
    return foo 

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