Re: [闲聊] Zen of Python

楼主: uranusjr (←這人是超級笨蛋)   2021-01-18 13:45:11
这应该是 Zen of Python 里最常被误解的一句
首先这句话里写 obvious way 代表不是只能有一个方法
而是希望能够在设计中针对特定语境, 设计最适合的接口
也就是设计时应该先有应用例, 再根据应用方法设计合适的接口
而非先确定接口, 才在想办法把各种应用塞进接口中
很多人会用这句话来背书, 觉得某件事已经可以用 A 方法写, 所以不该有 B
然而每个应用中最合适的 semantic 并不永远一样
而在 semantic 不同的前提下, 即使实作完全相同, 有复数写法也仍然可能是好设计
这同时也代表设计时不应该为了满足这句话, 而刻意排除逻辑上合理的接口
最后, 这句话必须和下一句一起看
Although that way may not be obvious at first unless you're Dutch.
什么才是 obvious way 是非常因人而异的东西
所以接口设计时必须能说服作者自己, 而非满足教条
即使作者的想法与你不同, 也绝对不代表设计出来的就有问题
只要有一致性, 能够自圆其说, 就是合理的设计
※ 引述《IcecreamHsu ()》之铭言:
: Zen of Python 13th
: https://www.python.org/dev/peps/pep-0020/
: There should be one—and preferably only one—obvious way to do it.
:
: 好奇大家怎么看这句话的?
: 对我来说,Python 添加了太多语法糖
: 使得老手和新手写的 code 品质落差相当大
: 例如循环可以用标准的 for,也可以用 list comprehension 来完成
: 或是 a is b 可以用 id(a) == id(b) 来替代
: (更不用说太多新手搞不清楚 == 和 is 的差别
: 总之,看到 Zen of python 这句话觉得有些困惑
: 也许在那个年代(2000年前后) Python 相较其他语言的确是这样
: 但是在现在这时代 虽然我会的语言也不多 但 Go 绝对是比 Python 要更明确吧
: 没有要在 Python 板黑 Python 的意思XD
: 只是觉得 Zen of python 好像不那么符合现在 Python 的哲学
: (其他句我也觉得有点问题,但只挑一句来讨论)
: 我的话会觉得现代的 Python 比较是海纳百川
: 没有什么特色,但是就能满足所有人的需求
: 所以大家都愿意用 Python 并拿 Python 来沟通
: 好奇大家对 Python 的语言本身 有什么想法吗
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2021-01-19 22:06:00
推一下
作者: ToastBen (吐司边)   2021-01-21 00:55:00

Links booklink

Contact Us: admin [ a t ] ucptt.com