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

Check the number of parameters passed in Python function

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

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


1
2
def a(*args, **kwargs):
  print(len(args) + len(kwargs))


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

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

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

如果你这样做:

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

你最终得到4分,这对你的预期结果来说是不对的。

关于当地人的文件()


您还可以将函数的输入更改为列表,以便具有以下功能:

1
a(your_list)

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

1
print len(your_list)

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