簡體   English   中英

Python - 在其他函數中傳遞帶參數的函數作為參數

[英]Python - Passing Functions with Arguments as Arguments in other Functions

我是編程的新手,我一直堅持這個問題,非常想要一些幫助!

我的函數中的一個參數是可選的,但可以基於另一個函數采用多個默認值。 兩個函數都采用相同的輸入(以及其他)。 當我嘗試使用如下所示的函數分配默認值時:

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

問題是,用戶可以使用他們想要的任何“k”值調用“anotherFunc”,這會使事情復雜化。 有沒有辦法讓一個帶有參數的函數作為另一個函數的參數? 或者我有什么方法可以根據之前的功能設置多個默認值'k',同時仍允許用戶根據需要選擇自己的'k'?

謝謝!

您可能想要做類似的事情:

def func(foo):
    return foo

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

foo在定義函數時充當第一個函數參數的占位符。 在調用函數之前它沒有任何值,可以在函數體中訪問它的值,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM