我正在编写一个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
谢谢大家
答案 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
的伟大支持者,因为它让你尽早发现错误。