Python进阶编程:编写更高效、优雅的Python代码
上QQ阅读APP看书,第一时间看更新

2.2.6 字符串插入

下面实现这样一个需求:创建一个内嵌变量的字符串,变量被其所表示的字符串替换。

Python的f前缀可以方便地格式化字符串中内嵌的变量,相关代码(insert_var.py)示例如下:


language_name = 'Python'
age = 30
test_str = f'{language_name} is {age}.'
print(test_str)

执行py文件,输出结果如下:


Python is 30.

如果要使被替换的变量能在变量域中找到,可以结合使用format_map()和vars()方法,相关代码(insert_var.py)示例如下:


print(test_str.format_map(vars()))

执行py文件,输出结果与上面一致。

vars()方法有一个有意思的特性就是,它适用于对象实例,相关代码(insert_var.py)示例如下:


class Info:
    def __init__(self, language_name, age):
        self.language_name = language_name
        self.age = age

info = Info('Python', 30)
print(test_str.format_map(vars(info)))

执行py文件,输出结果同上。

还可以使用字符串模板(insert_var.py)实现,代码如下:


import string
str_t = string.Template('$language_name is $age.')
print(str_t.substitute(vars()))

执行py文件,输出结果同上。