我试着像这样继承psycopg2:
import psycopg2
class myp(psycopg):
pass
ii = myp
ii.connect(database = "myDataBase", user = "myUser", password="myPassword")
然后抛出一个错误:
^{pr2}$可以从psycopg2库继承吗?在
编辑: 我想使用不同的数据库,所以我只需更改MyDatabase类。像包装纸一样的东西。 示例:
import psycopg2
class MyDatabase(psycopg2):
def connect(self):
#do some stuff
return psycopg2.connect(database = "myDataBase", user = "myUser", password="myPassword")
对于mysqldb 导入MySQLdb
class MyDatabase(MySQLdb)
def connect(self):
#do some stuff
return psycopg2.connect(database = "myDataBase", user = "myUser", password="myPassword")
和派生类 类MyDataBaseApp(MyDatabase): def add(self,myObjectClass): 数据库=我的数据库() 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()
但根据文件,我必须用另一种方法,建议?在
免责声明:我不熟悉psycopg
更新
似乎是the documentation recommends子类
psycopg2.extensions.connection
。那么,connect()
是一个工厂函数,仍然可以用来创建新的连接,但是您必须将您的类作为工厂提供,according to the docs完整代码可能看起来更像(未测试):
<2更新
使用更新后的方法,您将尝试使用不同/不同的接口构建新的类。通常,组合比继承好,参见wikipedia和{a4}。在
相关问题 更多 >
编程相关推荐