我试图生成一个日志类,它具有一个接受输入并将其打印到日志文件的函数。打印到控制台时,示例可以是:
print("hi",[1,2,3])
导致
hi [1,2,3]
但是我有一个功能:
def printLog(input):
self.file.write('%s\n' % input)
但是,通过这种组合将无法正常工作。有道路我可以通过"嗨,[1,2,3]"作为一个字符串。这必须将列表转换为与控制台屏幕中打印完全一致的列表?这应该处理所有数据类型,而不仅仅是列表。
答案 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)