2013-07-01 66 views
2

每當一個Python函數調用缺少命名的參數,它會產生一個運行時錯誤,列出丟失的參數個數:如何在Python中找到缺少參數的名稱?

TypeError: getVolume() takes exactly 3 arguments (2 given)

然而,這並沒有告訴我具體的參數缺少其中。如果它實際上打印缺少的參數的名稱,而不是僅打印缺少的參數的數量,則此運行時錯誤消息將更具信息性。在處理接受大量參數的函數時,這一點尤爲重要:記住缺少的每個參數的名稱並不總是容易的。

通常情況下,是否可以修改Python函數,以便在缺少參數時打印缺失參數的名稱?

def getVolume(length, width, height): 
    return length*width*height; 

print(getVolume(height=3, width=3)); 
+1

是的......但它不是小事。 –

+1

這在Python3中發生了變化,您可以免費獲取缺少的參數名稱。 – michaelmeyer

+0

@doukremt我在Python 3中得到了同樣的錯誤,它沒有列出缺少的命名參數:'TypeError:getVolume()只需要3個參數(2給出)'。這是什麼意思? –

回答

1

這在Python3.3改變(最多),你得到的缺失參數名免費:

>>> def getVolume(length, width, height): 
...  return length*width*height; 
... 
>>> print(getVolume(height=3, width=3)); 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: getVolume() missing 1 required positional argument: 'length' 
+2

但是,你如何獲得編程? –