第一个问题
... .format在许多方面似乎都更加复杂。一个令人烦恼的事情
%是它如何可以接受变量或元组。你会认为以下各项将始终有效:
"hi there %s" % name
但是,如果name碰巧(
1, 2, 3),它将抛出一个
TypeError。为了确保它始终打印,你需要执行
"hi there %s" % (name,) # supply the single argument as a single-item tuple
真丑。.format没有那些问题。同样在你给出的第二个示例中,该.format示例看起来更加简洁。
为什么不使用它?
- 不知道(我在阅读本文之前)
- 必须与Python 2.5兼容
第二个问题,字符串格式化与其他任何 *** 作都同时发生-计算字符串格式化表达式时。而且,Python并不是一种惰性语言,它会在调用函数之前先对表达式求值,因此在你的
log.debug示例中,表达式
"some debug info: %s"%some_info首先求值为
"some debug info: roflcopters are active",然后将该字符串传递给log.debug()。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)