Python中What the f*ck Python ! 是什么意思?
亦可赛艇
这是Python社区里一个梗,指那些看起来违反直觉但实际上完全符合语言规范的代码行为。
比如这个经典例子:
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
看起来同样的赋值操作,256时is返回True,257就返回False。这其实是因为Python对小整数(-5到256)做了缓存优化,is比较的是对象id,257会创建新对象。
再比如这个:
>>> 'something' is not None
True
>>> 'something' is (not None)
False
第一个比较字符串是否不是None,第二个其实是'something' is False,因为not None的结果是False。
这些“WTF”时刻通常源于对Python底层机制(如对象模型、运算符优先级、缓存机制)的不熟悉。社区有人专门收集这些案例做成趣味项目,帮助大家更深入理解语言设计。
一句话:这些都是合法的Python行为,只是有点反直觉。
感觉写一版 javascript 的能长一倍 哈哈
标题配合楼主头像食用味道更佳
事实上这个项目的原作者就是受到类似的 js 项目的启发才做了这个项目,文章最后有写
很有趣,感谢楼主翻译,已 star。
已 star,感谢楼主
看了前几个例子,java 不是也一样嘛,猜猜下面输出什么?
Integer c=2;
Integer d=2;
Integer u=1000;
Integer i=1000;
int o=1000;
System.out.println(c==d);
System.out.println(u==i);
System.out.println(o==i);
System.out.println(o==u);
拜托别让出面试题的人看到这些
666666 看了几个例子 就觉的很不一般
有点意思
不想回答,反正就是 integerCache 相关的
我觉得上边 java 这几个知识点还是有必要掌握的
小整数缓存我一个不是主写 Java 的都知道
赞
666666
有意思 star 了
这些坑只要理解名字空间,就能看懂一大半。至于 return finally return 这种。估计没人这样用
感觉这个作者相当爱 python…
没看到链接啊
感谢楼主分享这个有意思的项目,翻译有心了
竟然是另起炉灶,而不是从原项目 fork 出来而新增加一个中文版 .md 来自己维护…
这个真是棒极了!比前几天吵的火热的那个 “将代码翻译成中文” 的项目 有意义得多啊…
真有爱啊,可惜我已经离开了
廖良开
我没有说你不知道啊?本来就是常识啊,我只是问是不是应该写一篇 what the f**ck java ?
😂😂😂
我觉得这篇文章的意义就在于让你知道有这样的写法,但平时最好别用
另起炉灶的初衷时希望 commit 记录能保持纯净,因为我是每个列子提一个 commit,这样当你觉得我的翻译看不懂的时候翻一下 commit 记录就能很容易的获取原文与翻译对照的页面,而不用你在两个页面里来回找了。
“中文版” 那三个字就是链接,直接点就可以了。
#2 IE6 7 8 9 

