2012-01-02 149 views
2

我正在写一个python程序来做不同数据库之间的粒度同步。Python:如何从两个模块中导入具有相同名称的类?

我使用SQLAlchemy的和DB检查和架构类生产模块命名sqlautocode。

有两个数据库同步,具有相同的表名,由sqlautocode结果有相同的名字写的类。

我不得不进口theese类任意前缀,我想是这样的:

from module_name import * with prefixes 

否则我应导入每类名称与“为”调节剂,像这样:

from module_name import x as master_x 

硬编码的先用控制列表和exec/EVAL复杂的代码名称提取程序我想了解它的一些建议。

UPDATE: 的解决方案是一个sqlautocode选项:--table前缀= TABLE_PREFIX

谢谢大家

+0

为什么不只是'import module_name,module2_name'? – 2012-01-02 11:41:31

回答

8

只需导入模块,不要试图从他们拉的名字。无论如何,零星地使用from X import Y

import module_a 
import module_b 

module_a.x 
module_b.x 
+0

我需要从它们中提取名称,答案是whitin sqlautoconde命令帮助: – 2012-01-02 12:11:33

1

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

import moda, modb 

moda.MyClass() 
modb.MyClass() 

在另一方面,这并不让你使用酷工具,如pyflakes。所以我会努力工作(你只需要做一次,对吧?),并通过重命名导入类。我非常支持from x import something,因为它让你尽早发现错误。

+0

我需要从中提取名称。我在sqlautocode帮助中找到了答案:--table-prefix = TABLE_PREFIX – 2012-01-02 12:12:29

相关问题