Python 存储模块列表

Python 存储模块列表,python,import,Python,Import,我最近学习了_uuu uuu uu uu uu u u u u u u u u u u u u u u u u u 所以我可能有三个模块test1、test2、test3,每个模块都包含一个函数“print_hello”,它只打印“hello,我是[module name]” 在运行时,我会调用一些函数来导入这些模块并将它们放入列表中。 然后我会选择一个0到2之间的随机数,从列表中选择该模块,然后打印hello #run function to import each module, resul

我最近学习了_uuu uuu uu uu uu u u u u u u u u u u u u u u u u u

所以我可能有三个模块test1、test2、test3,每个模块都包含一个函数“print_hello”,它只打印“hello,我是[module name]”

在运行时,我会调用一些函数来导入这些模块并将它们放入列表中。 然后我会选择一个0到2之间的随机数,从列表中选择该模块,然后打印hello

#run function to import each module, resulting in the following list #my_modules = [module1, module2, module3] #generate some number i chosen_module = my_modules[i] chosen_module.print_hello() #运行函数导入每个模块,得到以下列表 #my_modules=[模块1、模块2、模块3] #生成一些数字i 选择的_模块=我的_模块[i] 所选的\u模块。打印\u hello()
这是可接受的编码实践吗?或者有什么理由不鼓励这种做法吗?

我在一些测试代码中使用这种方法。我想根据同一模块的不同版本测试模块的一个版本的输出。能够在不同的模块实例上进行迭代可以使代码更清晰


但这种代码是规则的例外。这种方法很少是解决问题的最干净的方法。

我在一些测试代码中使用这种方法。我想根据同一模块的不同版本测试模块的一个版本的输出。能够在不同的模块实例上进行迭代可以使代码更清晰


但这种代码是规则的例外。很少有人认为这种方法是解决问题的最干净的方法。

你应该问问自己,为什么要做这种非正统且不明显的黑客行为。如果没有充分的理由,一个更传统的解决方案可能对每个人都更简单。@delnan,它将允许我访问程序运行时确定的适当模块。如果不在脚本中的某个地方使用硬编码,我想不出其他方法来实现这一点。如果有传统的解决方案,最好知道一些。不要欺骗自己。你也硬编码了它,你只是使用数字索引,让你觉得它是“动态的”。但它并不比用if-else硬编码更具动态性,它只是更简洁。如果我编写模块test4和test5,它们都将被导入,而不必返回代码并添加进去。你应该问问自己,为什么要这样做,这是非常非正统和不明显的黑客行为。如果没有充分的理由,一个更传统的解决方案可能对每个人都更简单。@delnan,它将允许我访问程序运行时确定的适当模块。如果不在脚本中的某个地方使用硬编码,我想不出其他方法来实现这一点。如果有传统的解决方案,最好知道一些。不要欺骗自己。你也硬编码了它,你只是使用数字索引,让你觉得它是“动态的”。但它并不比在if-else中硬编码更具动态性,它只是更简洁而已。如果我编写模块test4和test5,它们都将被导入,而不必返回代码并添加进去。