Python 中的 str() 函数使用方法及实现
str()函数是Python内置函数之一,用于将一个对象转换为字符串类型并返回该字符串。
在Python中,可以使用str()函数将一个数字、列表、字典、元组、集合等任何类型的对象转换成字符串类型,以便于字符串拼接、格式化输出、写入文件等操作。
函数格式:
str(object, encoding='utf-8', errors='strict')
参数说明:
object:需要转换为字符串的对象。
encoding:字符串的编码方式,默认为UTF-8。
errors:字符串编码错误时的处理方式,默认为严格处理模式。
实例演示
下面是一些常见用法的例子,以便更好地理解str()函数的用法:
1. 将数字转换成字符串
num = 123
print(str(num)) # 输出:'123'
2. 将列表转换成字符串
lst = [1, 2, 3]
print(str(lst)) # 输出:'[1, 2, 3]'
3. 将字典转换成字符串
dic = {'name': 'bob', 'age': 18}
print(str(dic)) # 输出:{'name': 'bob', 'age': 18}
4. 将元组转换成字符串
tup = (1, 2, 3)
print(str(tup)) # 输出:'(1, 2, 3)'
5. 将集合转换成字符串
set = {1, 2, 3}
print(str(set)) # 输出:'{1, 2, 3}'
6. 将布尔值转换成字符串
print(str(True)) # 输出:'True'
print(str(False)) # 输出:'False'
7. 将函数转换成字符串
def greet():
print('hello')
print(str(greet)) # 输出:<function greet at 0x7f3951040e18>
8. 将特殊字符转义
str1 = "hello
world"
print(str(str1)) # 输出:'hello
world'
字符串拼接
通过使用str()函数,可以将多种类型的对象都转换成字符串,以便于进行字符串拼接操作。
例如:
name = 'bob'
age = 18
print('my name is ' + name + ', and my age is ' + str(age))
# 输出:'my name is bob, and my age is 18'
注意:在进行字符串拼接时,数字类型必须先使用str()函数转换成字符串类型,否则会报错。
实现细节
在Python中,str()函数是通过调用对象的__str__()方法实现的。
当使用str(obj)时,实际上是调用了obj.__str__()方法来将对象转换为字符串类型。
如果对象没有定义__str__()方法,则默认返回对象的内存地址。
如果需要在自定义的类中实现__str__()方法,直接返回字符串即可:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return 'name: {}, age: {}'.format(self.name, self.age)
tom = Person('Tom', 20)
print(str(tom)) # 输出:'name: Tom, age: 20'
总结
str()函数是一个非常实用的内置函数,可以将任何类型的对象转换为字符串类型以便于处理。
使用该函数可以避免在字符串拼接中产生类型错误,同时也可以方便地实现自定义类的字符串化输出。
需要注意的是,在进行字符串拼接时,请先使用str()函数将数字类型转换为字符串类型,以免出现类型错误。
