[英]Is there a way to automatically verify all imports in a Python script without running it?
假設我有一個有點長的Python腳本(手工審計太長),其中包含一個昂貴的操作,然后是一堆依賴於昂貴操作輸出的庫函數調用。
如果我沒有為庫函數調用導入所有必需的模塊,那么只有在昂貴的操作完成后 ,Python才會出錯,因為Python會逐行解釋。
有沒有辦法自動驗證我有所有必要的導入沒有 a)逐行手動驗證它或b)每次我錯過一個庫時運行昂貴的操作?
提出這個問題的另一種方法是,是否有一個工具可以執行C編譯器在運行時驗證依賴關系方面所做的工作。
不,這是不可能的,因為可以在運行時注入依賴項。
考慮:
def foo(break_things):
if not break_things:
globals()['bar'] = lambda: None
long_result = ...
foo(long_result > 0)
bar()
根據long_result
的運行long_result
,可能會給出NameError: name 'bar' is not defined
long_result
NameError: name 'bar' is not defined
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.