簡體   English   中英

在python函數中調用參數作為函數定義的一部分?

[英]Calling an argument in a python function as part of the function definition?

如何在函數定義內的函數輸入中傳遞參數?

例如:

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不存在。

暫無
暫無

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

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