对于给定的任意Python文件,我想查找并隔离具有以下属性的所有函数:
str
文字作为参数str
文字作为输出我应该如何在Python中以可扩展的方式执行此操作?我不想自己浏览文件并添加类型。
答案 0 :(得分:0)
您可以在Python 3.7中使用type hints进行此操作。但是您需要在函数上提供类型注释。
一个简单的例子是:
import typing
def main(hello: str, world: int): -> typing.List[int]:
x = list(range(world)
print(x)
return x
typing.get_type_hints(main)
>>> {'hello': str, 'world': int, 'return': typing.List[int]}
此并不强制该函数实际上使用了这些类型,但是确实使内省更加容易。 Mypy可以强制该函数使用带注释的类型。
编辑:Google有一个名为推断功能类型的项目,名为pytype。这不是完美的方法,但是它是将一些mypy注释添加到第三方程序包中的快速方法。