小小总结如下:
from module import *
1
vituralfuture 307 天前 via Android
9 python 也能搞嵌入式,对嵌入式工程师来说 c 风格的格式化更容易使用,而且 c 风格格式化应该是从 python2 就有的
|
2
eagleoflqj 307 天前 via iPhone
1 不同意,我还想其他语言怎么就没有呢
|
3
henix 307 天前
如果是很重要的反模式,可以找找有没有 linter 能检查出来
|
4
woodfizky 307 天前 3
你没把这篇文章本身就主观的标题也翻译过来,人家是《我在生产中不会用的 9 种反模式》,突出一个主观。
部分观点你也总结的不对。 1 ,原作者确实说其他语言没见过这样的语法,但是只是说其他并非熟悉 Python 的同事在维护 for-else 代码时会困惑,并且下面给出了一段不用 for-else 的 Python 代码,你看那段代码就知道 for-else 比其他语言还要自己写个 flag 的好处在哪里了,本身 for-else 是好东西; 3 ,作者意思是 python 中有更优雅的多重嵌套循环实现方式; 6 ,用 OOP 语言写的代码,继承链过长不是 OOP 语言的错,是开发者的错; 7 ,别的 IDE 不清楚,PyCharm 用可变对象做默认参数,IDE 会提示告警的; 9 ,原文是还兼容 C 风格的字符串格式化方式,但是后面有这么一句话: We should avoid this old technique now and apply the f-string syntax for all string formatting in Python ; Python 现在有 fstring 了,fstring 之前也有.format ,C 风格的字符串格式化很少见到有同事用了,顶多用 format 方法,或者更笨的字符串相加。。作者呼吁用新特性,这点是没毛病的。 |
5
paopjian 307 天前
这文章没法看啊,还得订阅?
|
6
marcong95 307 天前
原文是 I will never apply 你翻译一下就变成了「常见」的反模式。。。
2~8 应该其他语言都是不建议使用的吧,也不是只是 Python 会有的问题 |
7
est 307 天前
还使用 C 语言的风格去格式化字符串
C 语言风格挺好的。我就问你 logging 模块怎么搞 官方也是一刀切去掉,结果又灰溜溜加回来 https://peps.python.org/pep-0461/ .format() 和 fstring 最讨厌的死脑筋类型 f'{1.1:d}' 不成功,'%d' % 1.1 是可以的。本来就是随手打印一下,这下得多写好多行 if 一下类型。 |
8
est 307 天前
另外个人方案 match-case 。有 elif 为啥还要这玩意?除了搞语法花样没有任何收益,屎上雕花。以前的 There should be one-- and preferably only one --obvious way to do it 是被吞了吗
|
9
est 307 天前
个人方案 -> 个人反感
|
10
NoOneNoBody 307 天前
每件事都有两面
python 包很多很好很方便,就是类型太多了 但我昨天花了四小时在排除“类型不符”的问题,数据准确性和代码逻辑都没问题,最后就是在十几个地方加上指定类型的参数就过了 |
11
Alias4ck 307 天前
为什么我觉得 one line 很酷,但是实际开发我不推荐
|
12
stimw 307 天前 via Android
我很讨厌别人写 one line 然后说这是 phthonic
|
13
skywalker1014 307 天前
for-else 这个好用啊,就算看不懂也一学就会
|
14
Maerd 307 天前
|
16
zywscq OP @eagleoflqj for-else 这个语法真的很独特,用熟悉了可能比较方便,但是不知道的就完全看不明白。
|