我是Python新手,想知道是否有一种简单的方法可以在Python函数中获取传递参数的数量。
a(1, 2, 3) ==>3
a(1, 2) ==>2
答案 0 :(得分:18)
def a(*args, **kwargs):
print(len(args) + len(kwargs))
答案 1 :(得分:8)
您可以使用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分,这对你的预期结果不合适。
上的文档答案 2 :(得分:1)
您还可以将函数的输入更改为列表,以便具有以下功能:
a(your_list)
然后知道有多少参数传递给函数, 你可以这样做:
print len(your_list)
但是,这意味着您更改了函数的输入类型, 从许多输入变量到只有一个,列表(可以有可变数量的元素)。