![](/img/trans.png)
[英]Python: How to import all methods and attributes from a module dynamically
[英]Python import all * from dynamically created module
我發現通過引用它們的名稱作為文本來導入動態創建/命名的模塊的許多變體,但都將模塊作為一個整體導入並且似乎不便於導入所有 *....
就我而言,文件中的對象是動態創建和命名的,因此無法事先發現它們的身份。
這行得通,但是有沒有更好的方法可能使用 importlib?
PREFIX = "my_super_new"
active_data_module = "{0}_data_module".format(PREFIX)
exec("from {0} import *".format(active_data_module))
您可以在模塊中使用vars
。 這將返回模塊上所有屬性的字典(我認為)。 然后您可以將字典分配給globals
字典以使其在當前模塊中可訪問:
import importlib
PREFIX = "my_super_new"
active_data_module = "{0}_data_module".format(PREFIX)
module = importlib.import_module(active_data_module)
globals().update(vars(module))
使用彼得伍德的回答,我創建了一個小實用程序 function:
import importlib
def import_everything_from_module_by_name(module_name):
globals().update(vars(importlib.import_module(module_name)))
modules_for_import = [
module_a,
module_b,
module_c
]
for module_name in modules_for_import:
import_everything_from_module_by_name(module_name)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.