2024-04-20 15:14:27 发布
网友
我看到所有的答案都推荐使用str(object)。如果您的对象包含超过ascii字符,并且您将看到类似ordinal not in range(128)的错误,那么它可能会失败。当我用英语以外的语言转换字符串列表时,情况就是这样
str(object)
ordinal not in range(128)
我用unicode(object)解决了这个问题
unicode(object)
str用于生成对象数据的字符串表示。如果您正在编写自己的类,并且希望str为您工作,请添加:
str
def __str__(self): return "Some descriptive string"
print str(myObj)将调用myObj.__str__()。
print str(myObj)
myObj.__str__()
repr是一个类似的方法,它通常生成有关类信息的信息。对于大多数核心库对象,repr在尖括号之间生成类名(有时还会生成一些类信息)。repr将被使用,例如,只需在interactions窗格中键入对象,而不使用print或其他任何方法。
repr
print
您可以为自己的对象定义repr的行为,就像您可以定义str的行为一样:
def __repr__(self): return "Some descriptive string"
>>> myObj在“交互”窗格中,或repr(myObj),将导致myObj.__repr__()
>>> myObj
repr(myObj)
myObj.__repr__()
myvariable = 4 mystring = str(myvariable) # '4'
另外,也可以尝试repr:
mystring = repr(myvariable) # '4'
这在python中称为“转换”,并且非常常见。
我看到所有的答案都推荐使用
str(object)
。如果您的对象包含超过ascii字符,并且您将看到类似ordinal not in range(128)
的错误,那么它可能会失败。当我用英语以外的语言转换字符串列表时,情况就是这样我用
unicode(object)
解决了这个问题str
用于生成对象数据的字符串表示。如果您正在编写自己的类,并且希望str
为您工作,请添加:print str(myObj)
将调用myObj.__str__()
。repr
是一个类似的方法,它通常生成有关类信息的信息。对于大多数核心库对象,repr
在尖括号之间生成类名(有时还会生成一些类信息)。repr
将被使用,例如,只需在interactions窗格中键入对象,而不使用print
或其他任何方法。您可以为自己的对象定义
repr
的行为,就像您可以定义str
的行为一样:>>> myObj
在“交互”窗格中,或repr(myObj)
,将导致myObj.__repr__()
另外,也可以尝试repr:
这在python中称为“转换”,并且非常常见。
相关问题 更多 >
编程相关推荐