调用python函数中的参数作为函数定义的一部分?

调用python函数中的参数作为函数定义的一部分?,python,function,arguments,Python,Function,Arguments,如何在函数定义内的函数输入中传递参数 例如: def correlate1(vara1, vara2=vara1*2): print "test" 返回: Traceback (most recent call last): File "test.py", line 321, in <module> def correlate1(vara1, vara2=vara*2): NameError: name 'vara1' is not defined 但是在函数

如何在函数定义内的函数输入中传递参数

例如:

def correlate1(vara1, vara2=vara1*2):
    print "test"
返回:

Traceback (most recent call last):
  File "test.py", line 321, in <module>
    def correlate1(vara1, vara2=vara*2):
NameError: name 'vara1' is not defined

但是在函数定义中是否有这样做的方法?

只要在调用函数后设置它:

def correlate1(vara1, vara2=None):
    vara2 = 2 * vara1 if vara2 is None else vara2

    print "test"
或者更简单:

def correlate2(var1, var2=None):
    var2 = var2 or var1 * 2
    print "test"

var2
的默认值表达式不能包含
var1
,因为在调用函数之前,
var1
不存在。

只要在调用函数后设置它:

def correlate1(vara1, vara2=None):
    vara2 = 2 * vara1 if vara2 is None else vara2

    print "test"
或者更简单:

def correlate2(var1, var2=None):
    var2 = var2 or var1 * 2
    print "test"

var2
的默认值表达式不能包含
var1
,因为在调用函数之前,
var1
不存在。

+1因为此答案使用的是无,而不是提问者提到的0,以指示应使用vara2的“默认解释”。这一点很重要,因为vara2预计是一个数值,因此当使用vara2=0调用时,这实际上可能是预期值。+1因为此答案使用的是无,而不是提问者提到的0,以表明应使用vara2的“默认解释”。这很重要,因为vara2应该是一个数值,因此当使用vara2=0调用时,它实际上可能是预期的值。