簡體   English   中英

如何僅導入模塊的一部分並停止在Python中編譯其他部分?

[英]How to import only one part of a module and stop compiling other parts in Python?

我的項目中有2個文件-

**file1.py**
class A():
    # Some code...

class B():
    # Calling an API to get the data

另一個文件是-

**file2.py**
from file1 import A
# Some code....

這里的問題是我只想導入類A,但是由於python的默認行為,它也確實編譯了在類B內編寫的代碼,這不需要調用API。

如何解決?

只需將代碼拆分為單獨的模塊,或重構類B以免在導入時調用API。

在Python中不支持部分導入。 import機制給您的唯一選擇是加載整個文件。

這意味着您必須自己加載文本文件,然后解析出所需的部分,然后編譯並執行這些部分。 這充滿了問題,因為您必須自己檢測任何依賴關系,才能就哪些可以省略和哪些不能省略作出明智的決定。

如果您真的想走這條路,則需要查看ast模塊,以生成包含在模塊文件中的對象樹。 我將使用對象上的行號來確定要編譯的原始源文件的哪些部分(將樹轉換回字節碼比較困難)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM