Python传递print语句包括非字符串函数

时间:2014-12-04 17:45:53

标签: python

我试图生成一个日志类,它具有一个接受输入并将其打印到日志文件的函数。打印到控制台时,示例可以是:

print("hi",[1,2,3])

导致

hi [1,2,3]

但是我有一个功能:

def printLog(input):
    self.file.write('%s\n' % input)

但是,通过这种组合将无法正常工作。有道路我可以通过"嗨,[1,2,3]"作为一个字符串。这必须将列表转换为与控制台屏幕中打印完全一致的列表?这应该处理所有数据类型,而不仅仅是列表。

4 个答案:

答案 0 :(得分:4)

使用file函数的print()参数:

def printLog(*inp):
    print(*inp, file=self.file) 

答案 1 :(得分:2)

您需要自己构建字符串。 print语句(和函数,如果可用)在每个参数上自动调用str,然后用空格分隔(默认情况下)它们。

def printLog(*input):
    self.file.write('%s\n' % (" ".join(str(x) for x in input),))

答案 2 :(得分:1)

怎么回合

print("A",[1,2,3],file=self.file)

答案 3 :(得分:0)

好吧,如果我没有弄错的话,在定义printLog之后,你是不是只是使用str()将输入强制转换为字符串?

def printLog(input):
    input = str(input)
    self.file.write('%s\n' % input)