gpt4 book ai didi

python - Monkey 在 Python 中修补 C 扩展

转载 作者:太空宇宙 更新时间:2023-11-03 15:24:14 25 4
gpt4 key购买 nike

使用 question 972 中讨论的方法,我无法在 psycopg 中修改 cursor() 方法:

试图用 types 修补 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扩展?

最佳答案

正确。 C 中定义的类型不能添加任意属性。

关于python - Monkey 在 Python 中修补 C 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9883906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com