有没有一种方法可以找到何时将类与python中的静态分析一起使用?

时间:2020-08-11 11:14:49

标签: python static-analysis

我有一个相当大的monorepo代码库。有两个名称相同的类。我很想知道是否有一种方法可以通过推理找到仅一个具有相同名称的类区别类。

示例:

# file client1.schema
class ObjectIdField: # <- I want to audit the uses of this class
    ...

# file client.schema
class ObjectIdField: # <- I don't want to audit the use of this class
   ...

# file project 1
from client1.schema import ObjectIdField
ObjectIdField()

# file project 2
from client2.schema import ObjectIdField
ObjectIdField()

1 个答案:

答案 0 :(得分:0)

您的导入语句是关键。

在上面的示例中,您的静态分析可以解析ObjectIdField的所有代码,但只能解析from client1.schema的用法。

如@balderman在评论中所建议,您可以在PyCharm中选择对象实例化ObjectIdField()和Ctrl-B(“转到定义”)。这将带您进入client1.schemaclient.schema中的定义。 PyCharm将从导入语句中找出哪一个正确。

相关问题