检查不返回函数的数据类型

Posted

技术标签:

【中文标题】检查不返回函数的数据类型【英文标题】:Inspect doesn't Return Data Type of a Function 【发布时间】:2021-12-23 03:20:48 【问题描述】:

我正在尝试使用joke2k/faker 来生成假数据。允许使用函数名称动态生成,例如"random_int",我用 inspect 查找函数的签名。签名应包括输入参数的数据类型和默认值。

inspect.signature(fake.random_int)

但它返回以下没有数据类型:

<Signature (min=0, max=9999, step=1)>

我在 faker 库中检查 source code of the function,inspect 应该返回 &lt;Signature (min: int = 0, max: int = 9999, step: int = 1) -&gt; int&gt;

def random_int(self, min: int = 0, max: int = 9999, step: int = 1) -> int:
    """Generate a random integer between two integers ``min`` and ``max`` inclusive
    while observing the provided ``step`` value.
    This method is functionally equivalent to randomly sampling an integer
    from the sequence ``range(min, max + 1, step)``.
    :sample:
    :sample size=10: min=0, max=15
    :sample size=10: min=0, max=15, step=3
    """
    return self.generator.random.randrange(min, max + 1, step)

代码编译到 python 库时,python 类型会丢失吗?如何重新编译保留打字的库?

【问题讨论】:

【参考方案1】:

上述情况发生在 Faker == 8.16.0。 将 Faker 升级到 9.8 版后,inspect.signature() 返回正确的输入。

【讨论】:

以上是关于检查不返回函数的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Typescript - 如果我想返回对象,函数返回类型

Jquery 的构造函数

TypeScript--泛型

TypeScript--泛型

Access 中的自定义函数返回类型转换错误

JS函数变量作用域