2017-04-18 132 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 
相关问题