Skip to main content
 首页 » 编程设计

python之限制函数/方法的可选位置参数的数量

2025年05月04日18lyj

什么是限制函数或方法的可选位置参数数量的合适解决方案?例如。我想要一个接受两个或三个位置参数(但不能更多)的函数。我不能使用可选的关键字参数(因为该函数需要接受无限数量的任意命名的关键字参数)。到目前为止我想出的是这样的:

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),您会发现大量使用您建议的技术的示例。