本系列将会陆续整理分享一些的Python内置函数。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_built-in_functions
-
1、通用对象转字符串:
str(object='')
-
2、将字节对象解码为字符串
str(object=b'', encoding='utf-8', errors='strict')
-
object:字节对象(bytes); -
encoding:指定解码时使用的编码格式,默认为‘utf-8’; -
errors:指定解码时的错误处理方式,默认为 ‘strict’。其他常见选项包括:‘ignore’(忽略解码错误)、‘replace’(用替代字符�替换无法解码的字节)、‘backslashreplace’(用反斜杠转义序列替换无法解码的字节)、‘xmlcharrefreplace’(用XML字符引用替换无法解码的字节)。
返回值:
-
str() 和 repr() 的区别:
下面是一些使用 str() 函数的示例:
-
示例 1:将对象转换为字符串
这是str()函数最常见的用法,用于将任意对象转换为字符串。
print(str(123)) # "123"
print(str(3.14)) # "3.14"
print(str(True)) # "True"
print(str([1, 2, 3])) # "[1, 2, 3]"
-
示例 2:将字节对象解码为字符串
当str()函数的第一个参数是字节对象(bytes)时,它会尝试将字节对象解码为字符串。
# 将字节对象解码为字符串
bytes_obj = b'xe4xb8xadxe6x96x87' # UTF-8 编码的 "中文"
decoded_str = str(bytes_obj, encoding='utf-8')
print(decoded_str) # 输出:'中文'
# 使用不同的错误处理方式
bytes_obj = b'xffxfexfd' # 无法解码的字节
print(str(bytes_obj, encoding='utf-8', errors='ignore')) # 输出:''
print(str(bytes_obj, encoding='utf-8', errors='replace')) # 输出:'���'
print(str(bytes_obj, encoding='utf-8', errors='backslashreplace')) # 输出:'xffxfexfd'
-
示例 3:自定义对象
如果自定义对象定义了__str__()方法,则str()会调用该方法来获取字符串表示。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person:name={self.name}, age={self.age}"
person = Person("Bob", 30)
str_person = str(person)
print(str_person) # 输出:Person:name=Bob, age=30
如果对象没有定义__str__()方法,str()会尝试调用对象的__repr__()方法来获取字符串表示。
对于自定义类,如果没有定义专门的__repr__()方法将返回一个用尖括号包围的字符串。该字符串包括对象的类型名称以及某些标识信息(如内存地址)。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# def __repr__(self):
# return f"Person:name={self.name} / age={self.age}"
person = Person("Bob", 30)
str_person = str(person)
print(str_person) # 输出:<__main__.Person object at 0x...>


本篇文章来源于微信公众号: 码农设计师