我想要在函數級別映射python包中函數和變量的用法/原因。在有些情況下函數/變量在其他功能使用的幾個模塊,我想創建一個字典,看起來像:如何在python包中找到python函數或變量的所有用法
{'function_name':{'uses': [...functions used in this function...],
'causes': [...functions that use this function...]},
...
}
我指給需要的模塊定義的功能包。
我該如何開始呢?我知道我可以做通過包裝__dict__
和測試在包中定義的功能迭代:
import package
import inspect
import types
for name, obj in vars(package).items():
if isinstance(obj, types.FunctionType):
module, *_ = inspect.getmodule(obj).__name__.split('.')
if module == package.__name__:
# Now that function is obtained need to find usages or functions used within it
但在那之後,我需要找到當前函數中使用的功能。如何才能做到這一點?這種類型的工作是否已經開發出來了?我認爲分析庫可能需要做類似的事情。
檢查此https://docs.python.org/2/library/ast.html –
看起來很有希望。顯然這些是「失蹤」的「ast」文檔:https://greentreesnakes.readthedocs.io/en/latest/index.html – pbreach
@Ni。感謝您提出這個模塊。我最終實現了一些實際工作的東西。 – pbreach