gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:44 25 4
gpt4 key购买 nike

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

模块:

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()

关于python - 将所有模块导入一个文件夹中,并通过其属性之一使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com