什么是限制函数或方法的可选位置参数数量的合适解决方案?例如。我想要一个接受两个或三个位置参数(但不能更多)的函数。我不能使用可选的关键字参数(因为该函数需要接受无限数量的任意命名的关键字参数)。到目前为止我想出的是这样的:
def foo(x, y, *args, **kwargs):
if len(args) == 1:
# do something
elif len(args) > 1:
raise TypeError, "foo expected at most 3 arguments, got %d" % (len(args) + 2)
else
# do something else
这样合理还是有更好的办法?
请您参考如下方法:
找出什么是“pythonic”的一种方法是在 python 源代码本身中搜索示例。
find '/usr/lib/python2.6' -name '*.py' -exec egrep 'len\(args\)' {} + | wc
156 867 12946
如果您细读上述命令的结果(没有 wc),您会发现大量使用您建议的技术的示例。
