限制函数或方法的可选位置参数数量的适当解决方案是什么?例如。我想要一个接受两个或三个位置参数(但不多)的函数。我无法使用可选的关键字参数(因为该函数需要接受无限数量的任意命名的关键字参数)。到目前为止我想出的是这样的:
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),您会发现大量示例完全使用您建议的技术。
关于python - 限制函数/方法的可选位置参数的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1718442/