如何使用动态子类

2024-09-28 05:35:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我仍然在学习python,我正在尝试学习对象类和继承

我正在尝试创建一个脚本,它能够使用不同的引擎(MySQL、Oracle和MSSQL)处理多个不同的数据库

我有一个名为dbremote的类和几个较小的类:MySQLMSSQLORACLE。类dbremote有一个内部变量:dbtype

每个较小的类都有相同的函数:test connectionperform queryget table structure

我要做的是用dbtype调用dbremote,然后调用函数,让dbremote类使用正确的子类来执行操作

我希望有人能教我怎么做。 谢谢


Tags: 对象函数test引擎脚本数据库mysqlconnection
1条回答
网友
1楼 · 发布于 2024-09-28 05:35:32

您可以创建一个简单的工厂函数来基于dbtype创建适当类型的实例,然后调用所需的方法

from xxx import MySQL, MSSQL, ...

def dbremote_factory(dbtype, *args, **kwargs):
    dbremote_cls = { cls.dbtype : cls for cls in [ MySQL, MSSQL, ... ] }[dbtype]
    return dbremote_cls(*args, **kwargs)

dbremote = dbremote_factory('mysql')
print dbremote.test_connection()

相关问题 更多 >

    热门问题