gpt4 book ai didi

python - 如何在Python中执行静态程序分析以查找具有某些属性的函数?

转载 作者:太空宇宙 更新时间:2023-11-03 20:53:16 24 4
gpt4 key购买 nike

对于给定的任意 Python 文件,我想查找并隔离具有以下属性的所有函数:

  1. 它采用 str 文字作为参数
  2. 它返回一个 str 文字作为输出
  3. 该函数是独立的;它不依赖于全局变量或外部类中的变量/对象

我应该如何在 Python 中以可扩展的方式执行此操作?我不想自己检查文件并添加类型。

最佳答案

您可以在 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]}

并不强制函数实际使用这些类型,但它确实使内省(introspection)变得更容易。 Mypy可以强制该函数与带注释的类型一起使用。

编辑:Google 有一个名为推断函数类型的项目,名为 pytype 。它并不完美,但它可以是向第三方包添加一些 mypy 注释的快速方法。

关于python - 如何在Python中执行静态程序分析以查找具有某些属性的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56175087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com