如何用Python机智地解释"there is only one way to do it"?
给测试部的同事培训 Python 基础,我把这句列在语言特点中了,讲到这里的时候脑子突然闪过字符串赋值单双引号,大脑瞬间尴尬后直接讲"任何事物都有打脸的一面,比如字符串赋值..."囧
如何用Python机智地解释"there is only one way to do it"?
5 回复
字符串引号是可以活用的。
one best way to do it, called pythonic way
“There is only one way to do it” 是 Python 设计哲学“Zen of Python”里的一句,但很多人误解了它的意思。它不是说一个功能只能有一种写法,而是强调应该有一种(且最好只有一种)显而易见的实现方式,目的是让代码更清晰、可读,减少迷惑。
举个例子,遍历列表并获取索引,新手可能会写:
i = 0
for item in my_list:
print(i, item)
i += 1
但 Pythonic 的方式是用 enumerate:
for i, item in enumerate(my_list):
print(i, item)
后一种就是“那一种显而易见的方式”——更简洁、不易出错,而且是社区共识的写法。
所以这句话其实是鼓励大家遵循 Python 的惯用法(idiomatic Python),而不是死磕语法唯一性。用 import this 可以看全文,体会一下那种追求优雅、明确的设计意图。
总结:别钻牛角尖,写清晰的代码就是对的。
如何活法,明明是单双引号通用么, python3 默认字符串双引号会转为单引号
不过嵌套用的时候则按照定义顺序来,是否就是活在这了…手动滑稽
只有一种最好的做法。
至于哪种是最好的做法,可以吵几年。


