質問 972で説明した方法を使用して、psycopg で cursor() メソッドをモンキー パッチできませんでした。
psycopg2 のメソッドに型をパッチしようとしましたが、うまくいきませんでした:
>>> import psycopg2, types
import psycopg2, types
>>> db = psycopg2.connect('dbname=foo')
db = psycopg2.connect('dbname=foo')
>>> def mycursor(self):
def mycursor(self):
... db.rollback()
db.rollback()
... return self.cursor()
return self.cursor()
...
>>> db.mycursor = types.MethodType(mycursor, db)
db.mycursor = types.MethodType(mycursor, db)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'psycopg2._psycopg.connection' object has no attribute 'mycursor'
>>>
C拡張だからですか?