我们假设我们有一个函数console.log()
,它是python模块的公共API的一部分。
有没有办法查询函数所期望的foo(a, b)
和a
的类型?
我知道我可以通过b
模块获取参数的数量及其默认值,但有没有可用的类型信息?
答案 0 :(得分:6)
Python是一种动态类型语言,所以没有;一个函数应该记录他们的期望。
Python 3.5及更新版支持optional type hinting;如果库使用类型提示,那么您可以使用typing.get_type_hints()
function查询此信息以编程方式访问该信息。
通常,Python函数应该接受实现期望功能的对象,而不是特定类型。如果你的函数迭代一个序列来提取字符串,那么它应该被记录为接受(在类型提示术语中)一个Iterable[str]
对象,而不是列表或元组或其他特定类型。