首页 > 解决方案 > 检查不返回函数的数据类型

问题描述

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

inspect.signature(fake.random_int)

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

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

我检查了 faker 库中函数的源代码inspect,它应该返回<Signature (min: int = 0, max: int = 9999, step: int = 1) -> int>.

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 类型会丢失吗?如何重新编译保留输入的库?

标签: python-3.xfaker

解决方案


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


推荐阅读