【发布时间】:2016-01-09 11:47:13
【问题描述】:
我是 Python 新手,想知道是否有一种简单的方法可以获取 Python 函数中传递的参数数量。
a(1, 2, 3) ==>3
a(1, 2) ==>2
【问题讨论】:
-
另一种可能here.
-
我不妨说这是XY Problem。
标签: python python-3.x
我是 Python 新手,想知道是否有一种简单的方法可以获取 Python 函数中传递的参数数量。
a(1, 2, 3) ==>3
a(1, 2) ==>2
【问题讨论】:
标签: python python-3.x
你可以使用 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() 上的文档
【讨论】:
def a(*args, **kwargs):
print(len(args) + len(kwargs))
【讨论】:
您还可以将函数的输入更改为列表,以便拥有一个函数:
a(your_list)
然后要知道有多少参数已传递给函数, 你可以这样做:
print len(your_list)
但是,这意味着您更改了函数的输入类型, 从许多输入变量到只有一个,列表(可以有可变数量的元素)。
【讨论】: