Python:如何从两个模块导入具有相同名称的类?

时间:2012-01-02 11:39:54

标签: python class import

我正在编写一个python程序来在不同的数据库之间进行粒度同步。

我正在使用SQLAlchemy和名为sqlautocode的模块进行数据库检查和模式类生产。

有两个DB同步,具有相同的表名,sqlautocode编写的类具有相同的名称。

我必须导入带有任意前缀的theese Classes,我正在考虑这样的事情:

from module_name import * with prefixes

否则我应该使用“as”修饰符导入每个Classes名称,如下所示:

from module_name import x as master_x

第一个带有控制列表和exec / eval复杂代码的HardCode名称提取程序我想对它提出一些建议。

更新: 解决方案是sqlautocode选项: - table-prefix = TABLE_PREFIX

谢谢大家

2 个答案:

答案 0 :(得分:8)

只需导入模块,不要尝试从中提取名称。无论如何,from X import Y应该零星地使用。

import module_a
import module_b

module_a.x
module_b.x

答案 1 :(得分:1)

在这种情况下,您不必从模块导入类。而是导入两个模块。像这样:

import moda, modb

moda.MyClass()
modb.MyClass()

另一方面,这不允许您使用像pyflakes这样的酷工具。所以我会努力工作(你必须只做一次,对吗?)并导入重命名的类。我是from x import something的伟大支持者,因为它让你尽早发现错误。