- 论坛徽章:
- 0
|
原帖由 retuor 于 2008-7-1 11:50 发表
def f(x):
print "do someting ..."
return x
@f
def g():
print "do other things...."
g()
@f
def g():
生成的 g 相当于原来的 f(g),先执行 f
继续请教:
def catchSqliteException(func):
def newFunc(*args, **kwargs):
try:
return func(*args, **kwargs)
except sqlutils.sqlite.Error, e:
raise Errors.ReqoError, str(e.message)
newFunc.__name__ = func.__name__
newFunc.__doc__ = func.__doc__
newFunc.__dict__.update(func.__dict__)
return newFunc
那在catchSqliteException中,为什么不先跑下面的代码:
newFunc.__name__ = func.__name__
newFunc.__doc__ = func.__doc__
newFunc.__dict__.update(func.__dict__)
而先跑
def newFunc(*args, **kwargs):
try:
return func(*args, **kwargs)
中的return func语句呢。
另外可以说明一下修饰的use case吗?非常感谢 |
|