好吧,我已經閱讀了關於班級方法裝飾的所有問題,但我的情況不像他們。如何裝飾班級方法
def safe_db(foo):
def _inner(*args, **kwargs):
try:
foo(args, kwargs)
return True
except Exception as e:
log.error(e.message)
print e.message
return False
return _inner
class BaseDB(object):
def __init__(self):
self.connection = Connection()
self.db = self.connection.goobi
self.table = None
@safe_db
def create(self, **data):
self.table.insert(data)
def update(self, where, **data):
try:
self.table.update(where, {'$set': data})
return True
except Exception as e:
log.error(e.message)
print e.message
return False
然後我嘗試調用方法從繼承的類用戶創建:
u = User()
u.create(email='[email protected]', password='secrete')
我得到異常:
2012-09-08 18:17:18,230 ERROR [hairs.model.user][worker 2] create() takes exactly 1 argument (2 given)
create() takes exactly 1 argument (2 given)
我不能明白,我怎麼可以裝點BaseDB類方法,或我怎樣才能使異常捕獲並記錄更少痛苦?
許多thx,我的注意力不對了讓我錯 – Denis