2014-12-04 24 views
0

我正在尝试生成一个具有输入并将其打印到日志文件的功能的日志类。当打印到控制台的例子可以是:Python传递包含非字符串的打印语句以实现功能

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

导致

hi [1,2,3] 

但是我有一个函数:

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

然而,通过这种组合将无法正常工作。有没有我可以通过“嗨,[1,2,3]”作为一个字符串。这将不得不转换列表打印完全按照它在控制台屏幕上打印?这应该处理所有的数据类型,而不仅仅是列表。

+4

输入你不应该把它作为一个变量名内建... – 2014-12-04 17:49:47

回答

4

使用print()功能的file说法:

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

那么,如果我没有弄错,你不能只在你定义printLog之后用str()来输入一个字符串吗?

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

我觉得目标是将多个参数传递给'printfLog'函数,就像'print'一样。 – chepner 2014-12-04 17:53:00

2

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

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

如何回合

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