假设现在我有一个功能:
def func(x, p): return p[0] * x ** 2 + p[1] * x + p[2]
现在,我可以使用检查获取有关该函数的信息:
import inspect
args, varargs, varkw, defaults = inspect.getargspec(func)
但我只知道我有两个参数,而不是每个参数的信息(无论是标量还是其他)。
只是确保 - 从理论上讲,有什么方法可以知道函数中使用的元组 p 的最小长度?
谢谢!
你不能强制传递给你的函数的参数的类型和值。
你唯一能做的就是在 python 3: annotations中注释你的函数,但即使这样也不能阻止用户传入无效的东西。
注意:实际上您可以通过直接检查函数或使用装饰器来强制执行,但这对您的情况没有帮助。
答案是不。
首先,您不能假设类型(更不用说参数的大小)。
其次,没有办法告诉长度,因为它应该是任意的,并且函数可能对输入根本没有任何作用。
如果您确实想要类似的东西,请尝试将 *l 用于可变长度参数。同样, **d 用于任意映射(命名参数)。