1

假设现在我有一个功能:

def func(x, p): return p[0] * x ** 2 + p[1] * x + p[2]

现在,我可以使用检查获取有关该函数的信息:

import inspect
args, varargs, varkw, defaults = inspect.getargspec(func)

但我只知道我有两个参数,而不是每个参数的信息(无论是标量还是其他)。

只是确保 - 从理论上讲,有什么方法可以知道函数中使用的元组 p 的最小长度?

谢谢!

4

2 回答 2

3

你不能强制传递给你的函数的参数的类型和值。

你唯一能做的就是在 python 3: annotations中注释你的函数,但即使这样也不能阻止用户传入无效的东西。

注意:实际上您可以通过直接检查函数或使用装饰器来强制执行,但这对您的情况没有帮助。

于 2013-08-20T06:28:17.023 回答
1

答案是不。

首先,您不能假设类型(更不用说参数的大小)。

其次,没有办法告诉长度,因为它应该是任意的,并且函数可能对输入根本没有任何作用。

如果您确实想要类似的东西,请尝试将 *l 用于可变长度参数。同样, **d 用于任意映射(命名参数)。

于 2013-08-20T06:52:22.517 回答