我覺得必須有一些簡單的東西,我在這裏想念。 這是我想做的事:如何編寫一個Python函數來接受*參數和關鍵字參數?
>>> def x(*args, a=False):
... print args, a
>>> x(1,2)
(1,2) False
>>> x(1,2,3, a=True)
(1,2,3) True
但你不能這樣定義一個函數。
我知道這會工作,但它似乎並不漂亮:
>>> def x(*args, **kwargs):
... if 'a' in kwargs:
... a = kwargs['a']
... else
... a = False
... print args, a
什麼是做到這一點的最好方法是什麼?
我正在使用python 2.6
我知道你正在使用2.6,但如果這是一個簡單的腳本,我不知道是否有可能將其移動到3.0。我剛剛在3.2中測試了你的確切代碼,它完美地工作(可能是因爲Py3的'頭部'和'尾部'的概念,這非常棒) – jonesy 2011-01-06 04:22:31