Skip to main content
 首页 » 编程设计

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

2025年05月04日14shangdawei

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

例如:

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=0): 
        if vara2==0: 
            var2=vara1*2         
        print "test" 

但是有没有办法在函数定义中实现呢?

请您参考如下方法:

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

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在调用函数之前不存在。