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

Jas*_*eOT 13 python python-3.x

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

a(1, 2, 3) ==>3
a(1, 2) ==>2
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 20

def a(*args, **kwargs):
  print(len(args) + len(kwargs))
Run Code Online (Sandbox Code Playgroud)

  • 我给这个答案+1,因为仅当变量数量可变时,函数内部的参数计数才有意义。 (2认同)

idj*_*jaw 9

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

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

def a(a, b, c):
    # make this your first statement
    print(len(locals()))
Run Code Online (Sandbox Code Playgroud)

如果你这样做:

def a(a, b, c):
    z = 5
    print(len(locals()))
Run Code Online (Sandbox Code Playgroud)

你最终得到4,这对你的预期结果是不合适的.

关于当地人的文件()

  • 可能值得一提的是,在完成函数内的任何赋值之前,必须先执行此操作才能使其工作. (2认同)