如何将“print”的结果转换为String变量

时间:2017-11-30 18:01:41

标签: python string printing

我在python中有一本字典,其内容在这个问题上并不重要。

重点是,当我这样做时:

print (dictionary)

我想将print的结果转换为String变量,例如:

my_string = (print(dictionary))

我知道上面的代码没有任何意义,但我只想展示我想要做的事情。

解决方案:str(字典)

2 个答案:

答案 0 :(得分:2)

print(obj)只需致电str(obj)并将其写入sys.stdout

如果你想获得相同的字符串表示,那么你可以手动调用str

my_string = str(dictionary)

Source

此外,str(obj)只会调用obj.__str__(),因此如果你这样做,你可以获得相同的行为:

my_string = dictionary.__str__()

有趣的一点:当您创建自己的类时,您实际上可以覆盖__str__的默认实现,并定义您希望如何对实例进行字符串化/显示

答案 1 :(得分:1)

您可以将字典强制转换为str对象,该对象将调用其__str__方法:

>>> dictionary = {"foo": "bar"}
>>> my_string = str(dictionary)
>>> print(my_string)
'{"foo":"bar"}'

事实上,str演员阵容在这里没用,因为print(dictionary)也会调用dictionary.__str__