【发布时间】:2015-10-23 00:11:23
【问题描述】:
我是装饰器的新手,我正在尝试创建一个,在方法执行后执行self.commit()。
我的论点有问题。方法 commit(装饰器)在类内部。
def commit(func):
def func_wrapper(func):
func()
self.commit()
return func_wrapper
我做了一个测试方法:
@commit
def h(self):
pass
并称它为:
db = database()
db.create_tables()
db.h()
错误:TypeError: commit() takes exactly 2 arguments (1 given)
我确实知道错误正在引发,因为它不是静态方法,所以我尝试在那里输入self 参数,但仍然出现错误。
你知道问题出在哪里吗?
【问题讨论】: