У меня есть следующий (сильно упрощенный) декоратор:
def log_and_execute(func):
def wrapper(*args, **kwargs):
print(*args, **kwargs)
return func(*args, **kwargs)
return wrapper
Я хочу использовать это для украшения pyodbc.connect.cursor
.
Поскольку я, очевидно, не могу отредактировать исходный код, чтобы сделать это, я пытаюсь сделать это так:
import pyodbc
connection = pyodbc.connect("connection_string_here")
cursor = connection.cursor()
cursor.execute = log_and_execute(cursor.execute)
Но я получаю следующую ошибку:
AttributeError: 'pyodbc.Cursor' object attribute 'execute' is read-only
Как мне это сделать, чтобы мне не пришлось менять все мои уже существующие cursor.execute
звонки?