检查Python函数中传递的参数个数

Posted

技术标签:

【中文标题】检查Python函数中传递的参数个数【英文标题】:Check the number of parameters passed in Python function 【发布时间】:2016-01-09 11:47:13 【问题描述】:

我是 Python 新手,想知道是否有一种简单的方法可以获取 Python 函数中传递的参数数量。

a(1, 2, 3) ==>3
a(1, 2) ==>2

【问题讨论】:

Getting list of parameter names inside python function的可能重复 另一种可能here. 我不妨说这是XY Problem。 【参考方案1】:

你可以使用 locals() 来做到这一点

重要的是要注意,这应该作为您方法的第一步最终完成。如果你在你的方法中引入一个新变量,你会改变你的结果。所以请确保您按照这种方式进行操作:

def a(a, b, c):
    # make this your first statement
    print(len(locals()))

如果你这样做了:

def a(a, b, c):
    z = 5
    print(len(locals()))

您最终会得到 4,这不符合您的预期结果。

locals() 上的文档

【讨论】:

可能值得一提的是,您必须先执行此操作,然后才能在函数中完成任何分配才能使其工作。 谢谢@Marius,好电话。我改变了它,让我知道你的想法。 谢谢,其实我会在函数的开头使用。【参考方案2】:
def a(*args, **kwargs):
  print(len(args) + len(kwargs))

【讨论】:

我给这个答案+1,因为函数内部的参数计数只有在它们数量可变时才有意义。【参考方案3】:

您还可以将函数的输入更改为列表,以便拥有一个函数:

a(your_list)

然后要知道有多少参数已传递给函数, 你可以这样做:

print len(your_list)

但是,这意味着您更改了函数的输入类型, 从许多输入变量到只有一个,列表(可以有可变数量的元素)。

【讨论】:

以上是关于检查Python函数中传递的参数个数的主要内容,如果未能解决你的问题,请参考以下文章

Python 随便 2days

Python函数:使用批处理文件将参数从.txt文件传递给python函数并执行函数

python怎样接收参数

Python函数

关于python中几个函数的用法

python-函数