字符串格式化方法调用——为什么是格式化方法?——灵活的引用语法:额外的复杂性和功能上的重叠

未匹配的标注

方法调用也支持直接的键属性*引用,有些人可能认为这更灵活。但如在之前例子中所见:将 %表达式中基于字典的格式化与format方法中的键和属性引用对比,这两个方法通常太过于相似,以至于不能根据这些理由来保证偏好某一个。比如,它们都可以多次引用同样的值:

>>> '{name} {job} {name}'.format(name='Bob', job='dev')
'Bob dev Bob'
>>> '%(name)s %(job)s %(name)s' % dict(name='Bob', job='dev')
'Bob dev Bob'

然而,特别在日常实践中,表达式看似同样简单,或更简单:

>>> D = dict(name='Bob', job='dev')
>>> '{0[name]} {0[job]} {0[name]}'.format(D) # 方法、键的引用
'Bob dev Bob'
>>> '{name} {job} {name}'.format(**D) # 方法,字典转参数
'Bob dev Bob'
>>> '%(name)s %(job)s %(name)s' % D # 表达式,键的引用
'Bob dev Bob'

公平地说,方法甚至有更专门的替换语法,其它的比较可能在一些小方面更偏向于两个方案中的任意一种。但考虑到功能的重叠和额外复杂性,人们会争论说格式化方法的实用性似乎不好不坏,或是寻找用例的特性(也就是不那么实用)。至少,对Python程序员(他们现在可能需要知道两个工具)增加的概念上的负担似乎看起来并没有清晰地被证明合理。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~