Python 中的 %()s 是什么意思?

What is the meaning of %()s in Python?

我在日志模块中看到这样%(asctime)s

%()s 而不是 %s 是什么意思?

我只知道%s是“字符串”的意思,网上找不到关于%()s的其他信息

这是使用 % form of Python string formatting 将值插入字符串时的字符串格式化功能。您正在查看的案例允许通过提供字典并在格式字符串中为该字典指定键来从字典中获取命名值。这是一个例子:

values = {'city': 'San Francisco', 'state': 'California'}
s = "I live in %(city)s, %(state)s" % values
print(s)

结果:

I live in San Francisco, California

%(asctime)s 是日志模块用来获取 'asctime' attribute of a LogRecord object.

的占位符

notation '%(key)s' 用于标识映射中的键并将其值插入格式字符串中。例如,考虑一个名叫约翰的人,他身高 168 厘米,体重 72 公斤。

person = {'name': 'john', 'height': 168, 'weight': 72}

如果你想打印他们的名字和重量,你不需要指定插入的每个实例,也不需要考虑重量是一个整数这一事实。您需要做的就是指定所需的键(在 %()s 说明符中)并提供在 %.

之后存储这些项目的映射
>>> print('%(name)s, %(weight)s' % person)
john, 72

这种字符串格式化方法类似于str.format():

>>> print('{name}, {weight}'.format(**person))
john, 72