我试图使用装饰器跟踪某些方法的执行情况。这里是装饰代码:
def trace(func):
def ofunc(*args):
func_name = func.__name__
xargs = args
print "entering %s with args %s" % (func_name,xargs)
ret_val = func(args)
print "return value %s" % ret_val
print "exiting %s" % (func_name)
return ofunc
问题是,如果我尝试将这个decorator应用于方法,self参数不会被发送。你能告诉我为什么吗?我该怎么解决?在
这一行不正确:
你在传递参数列表时忘记了扩展它。它应该是:
^{pr2}$进行此修改后的输出示例:
如果您曾经扩展decorator来获取关键字参数,那么在传递关键字参数时,还需要使用
**
适当地扩展它们。在相关问题 更多 >
编程相关推荐