Python - 在其他函数中传递带参数的函数作为参数

时间:2017-04-18 22:55:26

标签: 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

问题是,用户可以使用他们想要的任何“k”值调用“anotherFunc”,这会使事情复杂化。有没有办法让一个带有参数的函数作为另一个函数的参数?或者我有什么方法可以根据之前的功能设置多个默认值'k',同时仍允许用户根据需要选择自己的'k'?

谢谢!

2 个答案:

答案 0 :(得分:0)

你可能想做类似的事情:

%userprofile%\.docker\machine\machines\default

答案 1 :(得分:0)

在定义函数时,

foo充当第一个函数参数的占位符。在调用函数之前它没有任何值,可以在函数体中访问它的值,如下所示:

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