我觉得必须有一些简单的东西,我在这里想念。 这是我想做的事:如何编写一个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