python-3.x - 检查不返回函数的数据类型
问题描述
我正在尝试使用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 类型会丢失吗?如何重新编译保留输入的库?
解决方案
Faker == 8.16.0 发生了上述情况。将 Faker 升级到 9.8 版后,inspect.signature()
返回正确的输入。
推荐阅读
- linux - 更新 glibc 后:分段错误(核心转储)
- android - 我的应用程序无法发送获取位置的请求
- spring-boot - 如何在另一个具有循环依赖的单声道中使用单声道
- python - 在 Pandas DataFrame 中转置选定的 MultiIndex 级别
- external - 如何将外部库添加到 Spree 扩展?
- javascript - 从范围内的数组中获取唯一值?
- excel - Removeduplicates 无法用于大小取决于数据范围的数组
- php - 使用 Carbon::now() 插入日期时间,但添加一个空属性 Laravel
- linux - Drupal 8:如何为节点使用私有文件系统
- spring-boot - Spring Boot:Kotlin 和 MongoRepository:执行全文搜索