1,啥叫動態加載:
動態加載指在程序運行中,動態的加載模塊,而不是在運行之前利用import 或from ... import 的方式加載模塊的方式。
動態加載是通過指定模塊名進行加載,對比與靜態加載,動態加載可以接收一個模塊名的字符串,而靜態加載必須在運行之前全部加載完成。
2,應用場景:
(1) 程序在運行期間才能確定加載的模塊。
(2) 在某種條件下,需要通過模塊名字符串進行加載的模塊。
3,加載方式:
比如存在如下模塊
(1)靜態加載:
(2)通過__import__動態加載:
函數原型:__import__(name, globals={}, locals={}, fromlist=[], level=-1)
參數:name:模塊名,包含路徑
globals:全局變量,一般默認,如果設置,可設置globals()
locals:局部變量,一般默認,如果設置,可設置locals()
fromlist:導入的模塊,及name下的模塊名、函數名、類名或者全局變量名。
返回值:module對象,通過取module得屬性獲取模塊得函數、類或者全局變量等。
(3)通過 importlib模塊動態加載: