如何将任何数据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([]) '[]'