Skip to main content
 首页 » 编程设计

python之将所有模块导入一个文件夹中,并通过其属性之一使用它们

2025年05月04日29xxx_UU

我正在尝试构建一个可模块化的应用程序,因此我需要一种方法来允许我在不修改主应用程序的情况下创建新模块。为此,我正在准备允许我从文件夹中导入所有模块的模块系统,并且我想选择要使用的模块,例如,通过使用类属性。

模块:

topology_O.py:

class Topology(object): 
    def __init__(self): 
        self.name = 'O' 
        self.version = 0.1 
 
    def __str__(self): 
        string = "Topology: " + self.name 
        string += "Version: " + str(self.version) 
        return string 

topology_H.py:

class Topology(object): 
    def __init__(self): 
        self.name = 'H' 
        self.version = 0.1 
 
    def __str__(self): 
        string = "Topology: " + self.name 
        string += "\n > Version: " + str(self.version) 
        return string 

我想像这样使用它们:

myTopology = some_topology_thing('O') 
print  myTopology 
# Topology: O 
#  > Version: 0.1 
 
myTopology = some_topology_thing('H') 
print  myTopology 
# Topology: H 
#  > Version: 0.1 

所以模块将被name选择和使用。

请您参考如下方法:

importlib可以在这里提供帮助:

import importlib 
 
def some_topology_thing(topo_type): 
    mod = importlib.import_module('topology_{}'.format(topo_type)) 
    return mod.Topology()