Python 传递包含非字符串的打印语句来运行



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

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

这导致

hi [1,2,3]

但是我有一个功能:

def printLog(input):
    self.file.write('%sn' % input)

但是,传递此组合将不起作用。有没有办法我可以将"嗨,[1,2,3]"作为字符串传递。这必须转换列表以完全按照控制台屏幕中的打印方式打印列表?这应该处理所有数据类型,而不仅仅是列表。

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

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

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

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

回合如何

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

,如果我没记错的话,难道你不能在定义 printLog 后立即使用 str() 将输入键入到字符串中吗?

def printLog(input):
    input = str(input)
    self.file.write('%sn' % input)

最新更新