如何将任何数据types更改为Python中的string

我如何将任何数据types更改为Python中的string?

 myvariable = 4 mystring = str(myvariable) # '4' 

另外,或者试试repr:

 mystring = repr(myvariable) # '4' 

这在Python中被称为“转换”,并且是相当常见的。

str是为了产生对象数据的string表示。 如果你正在写自己的class级,你想要为你工作,添加:

 def __str__(self): return ... 

print str(myObj)将调用myObj.__str__()

repr是一个类似的方法,它通常产生关于class级信息的信息。 对于大多数核心库对象, repr会在尖括号之间生成类名(以及某些类信息)。 例如,只需在对话框中input对象,而不使用print或其他任何东西,就可以使用repr

您可以像定义str的行为一样为自己的对象定义repr的行为:

 def __repr__(self): return ... 

>>> myObj在您的交互窗格或repr(myObj)中将导致myObj.__repr__()

使用str内置:

 x = str(something) 

例子:

 >>> str(1) '1' >>> str(1.0) '1.0' >>> str([]) '[]' >>> str({}) '{}' ... 

从文档:

返回一个包含对象的可打印表示的string。 对于string,这将返回string本身。 与repr(object)的区别在于str(object)并不总是试图返回eval()所接受的string。 其目标是返回一个可打印的string。 如果没有给出参数,则返回空string“'。

我看到所有的答案build议使用str(object) 。 如果你的对象比ascii字符多,你可能会失败,你会看到类似于ordinal not in range(128)错误ordinal not in range(128) 。 当我用英语以外的语言转换string列表时,情况就是如此

我解决了它通过使用unicode(object)

HTH

str(object)将会诀窍。

如果要改变对象的string化方式,请为对象的类定义__str__(self)方法。 这样的方法必须返回str或unicode对象。

str(x) 。 但是,每个数据types都可以定义自己的string转换,所以这可能不是您想要的。

只需使用str – 例如:

 >>> str([]) '[]'