想知道最简单的方法是获得调试打印。
我正在寻找一些代码,并且有一些函数使用大量通用文本参数作为输入。所以我正在寻找一种简单的方法来打印该行而不必修改它以避免在那里出现拼写错误或错误
简单的例子,代码中的一行
someFunction('%s_someString', variable,
'%s_moreStrings' %someOtherString, someMoreString, someObject)
所以不要检查
print 'someFunction('%s_someString', %s, '%s_moreStrings', 'someObject') %
(someOtherString, variable, someMoreString)
我正在寻找一种打印方式。我试着做一些像编写一个打印字符串并对其进行评估的函数,但这不会像我想的那样工作
someFunction('someOtherString_someString', variable,
'someMoreString_moreStrings', someObject)
有没有办法呢
答案 0 :(得分:4)
这是一个简单的实现:
from functools import wraps
def prints_invocation(f):
@wraps(f)
def wrapped(*args):
print "%s(%s)" % (f.__name__, ', '.join(repr(a) for a in args))
return f(*args)
return wrapped
>>> @prints_invocation
... def add(x, y):
... return x + y
>>> add(1, 2)
add(1, 2)
3
将此扩展到打印kwargs
并返回值
答案 1 :(得分:1)
您是否尝试使用装饰器?
def DebugDecorator(func)
def log(*args, **kw):
print "{0}({1}".format(func.__name__, *args)
return func(*args, **kw)
@DebugDecorator
def someFunction():
code
编辑:我太慢了:)