【发布时间】:2013-09-17 19:17:02
【问题描述】:
我正在尝试像这样继承 psycopg2:
import psycopg2
class myp(psycopg):
pass
ii = myp
ii.connect(database = "myDataBase", user = "myUser", password="myPassword")
然后它抛出一个错误:
class myp(psycopg2._psycopg):
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
是否可以从 psycopg2 库继承?
编辑: 我想使用不同的数据库,所以我只需要更改 MyDatabase 类。类似包装的东西。 示例:
import psycopg2
class MyDatabase(psycopg2):
def connect(self):
#do some stuff
return psycopg2.connect(database = "myDataBase", user = "myUser", password="myPassword")
对于 mysqldb 导入 MySQL 数据库
class MyDatabase(MySQLdb)
def connect(self):
#do some stuff
return psycopg2.connect(database = "myDataBase", user = "myUser", password="myPassword")
和派生类 类 MyDataBaseApp(MyDatabase): def add(self, myObjectClass): db = 我的数据库() cn = 无
try:
cn = db.connect()
cur = cn.cursor()
cur.execute ("INSERT ...",(myObjectClass.parameter1, myObjectClass.parameter2))
cn.commit()
except MyDatabase.DatabaseError, e:
print e
if cn:
cn.rollback()
finally:
if cn:
cn.close()
但根据文档,我必须以另一种方式做,建议?
【问题讨论】:
-
你想达到什么目的?
标签: python inheritance psycopg2