有没有办法获得函数参数的类型?

时间:2016-10-31 12:46:51

标签: python types arguments

我们假设我们有一个函数console.log(),它是python模块的公共API的一部分。
有没有办法查询函数所期望的foo(a, b)a的类型?
我知道我可以通过b模块获取参数的数量及其默认值,但有没有可用的类型信息?

1 个答案:

答案 0 :(得分:6)

Python是一种动态类型语言,所以没有;一个函数应该记录他们的期望。

Python 3.5及更新版支持optional type hinting;如果库使用类型提示,那么您可以使用typing.get_type_hints() function查询此信息以编程方式访问该信息。

通常,Python函数应该接受实现期望功能的对象,而不是特定类型。如果你的函数迭代一个序列来提取字符串,那么它应该被记录为接受(在类型提示术语中)一个Iterable[str]对象,而不是列表或元组或其他特定类型。