说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 的内置函数 str() 返回对象的字符形式,它是 str 版本的 object。str 是内置的字符串类,一般用它来将对象转为字符类型。
str() 的语法是:
class str(object='')
class str(object=b'', encoding='utf-8', errors='strict')
str()
方法有三个参数:
返回值:
str()
方法返回一个字符串,该字符串被认为是给定对象的非正式或可打印的表示形式。
如果 encoding 或 errors 均未给出,str(object)
返回 object.__str__()
,这是 object 的“非正式”或格式良好的字符串表示。 对于字符串对象,这是该字符串本身。 如果 object 没有 __str__()
方法,则 str() 将回退为返回 repr(object)
。
如果 encoding 或 errors 至少给出其中之一,则 object 应该是一个 bytes-like object (例如 bytes 或 bytearray)。 在此情况下,如果 object 是一个 bytes (或 bytearray) 对象,则 str(bytes, encoding, errors) 等价于 bytes.decode(encoding, errors)。 否则的话,会在调用 bytes.decode() 之前获取缓冲区对象下层的 bytes 对象。
将一个 bytes 对象传入 str() 而不给出 encoding 或 errors 参数的操作属于第一种情况, 将返回非正式的字符串表示(另请参阅 Python 的 -b 命令行选项)。
特殊方法详见:特殊方法 __str__()
对象可读字符串形式。
一些例子:
str(88)
# '88'
str('Gairuo!')
# 'Gairuo!'
str(b'Gairuo!')
# "b'Gairuo!'"
# bytes
b = bytes('gairuö', encoding='utf-8')
str(b, encoding='ascii', errors='ignore')
# 'gairu'
在上边 bytes 实例中,字符“ö”不能被 ASCII 解码。因此,它应该给出一个错误。但是,我们已将错误设置为“忽略”。因此,Python会忽略 str()
无法解码的字符。
通过对象类的特殊方法 object.__str__()
可以自定义返回的字符内容:
class Student(object):
def __init__(self, name):
self.name = name
def __str__(self):
return repr(f'我是{self.name}')
me = Student('大明')
str(me)
# "'我是大明'"
Python 的字符串数据类型,是一个不可变序列,因此字符串实现了所有一般序列的操作,还额外提供了以下列出的一些附加方法。
关于字符串的方法,可参考:Python 字符串的方法。
更新时间:2024-03-03 13:22:30 标签:python str 字符串