函数如何将其printf样式(fmt,args,...)输入args转换为单个字符串?

时间:2017-06-01 22:50:19

标签: python python-2.7

如何使用python 2.7 def输入log.debug样式参数(即printf-style)然后将args转换为单个字符串?

我有很多代码可以执行很多log.debug(fmt, args, ...)

我想将输入参数fmt, args, ...转换为单个字符串。

例如: 目前,这是一个标准的调试日志,来自1格式arg和3个arg值:

self.log.debug("Setting parameter %s(%d) to: %d", axis_params[param]['desc1'], param, value)

..记录:"设置参数"

但是,在我的功能中:

self.grabit.debug("Setting parameter %s(%d) to: %d",
                  axis_params[param]['desc1'], param, value)

...我希望grabit生成一个包含以下内容的字符串:"将参数val1(val2)设置为:val3>"

1 个答案:

答案 0 :(得分:2)

您只需使用* unpacking syntax展开参数,然后使用%运算符格式化字符串。假设self.grabit是假设的Grabit类的实例,代码看起来像这样:

class Grabit(object):
    def debug(self, fmt, *args):
        return fmt % args