在Python中,動態加載模塊,你可以簡單地使用_____import_____語句和模塊分配給一個變量,即(從文檔):等價於Ruby中的Python動態導入語句?
spam = __import__('spam', globals(), locals(), [], -1)
我已經使用了好幾次在python爲了模擬動態模塊加載/卸載,因爲要「卸載」的模塊,你可以簡單地刪除所有對它的引用,即:
spam = None
是否有一個相當於這個在Ruby中?我看了其他幾個問題(this,this和this),但我想知道一種方法來限制加載的模塊到變量,如果可能的話。
經過一番測試,你提出的方法似乎工作得最好,但我不喜歡它。即使使用remove_const來自行清理,它看起來並不是很好的做法。我不喜歡Ruby忽視將導入的文件視爲Python自己的對象(因爲這樣做是有道理的,恕我直言)。沒錯,許多其他語言似乎不會讓你做這個比Ruby更多的東西。但我想我會考慮重新設計而不是做這樣的事情 - 它只是覺得太過分了。 – WilHall
這不是特別黑客。模塊定義了一個對象,然後你可以用你喜歡的對象來完成。 –
呃,我覺得額外的步驟是一個標誌,它並不是首先要做的。所以我會避免它。 – WilHall