上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文件,输出结果同上。