python中那些鲜为人知的功能特性,知道了功力又上升一层

经常逛GitHub的可能关注一个牛叉的项目,叫 What the f*ck Python!

这个项目列出了几乎所有python中那些鲜为人知的功能特性,有些功能第一次遇见时,你会冒出 what the f**k 的感叹。

因为这些例子看起来反人类直觉。

但是如果你理解了它背后的真正原理,你又会惊叹what the f**k, 竟然还有这么骚的操作。

来看看几个例子吧。

微妙的字符串

>>> a = "wtf"

>>> b = "wtf"

>>> a is b

True

>>> a = "wtf!"

>>> b = "wtf!"

>>> a is b

False

>>> a, b = "wtf!", "wtf!"

>>> a is b

True # 3.7 版本返回结果为 False.

复制代码

出乎意料的"is"

>>> a = 256

>>> b = 256

>>> a is b

True

>>> a = 257

>>> b = 257

>>> a is b

False

>>> a = 257; b = 257

>>> a is b

True

复制代码

说好的元组不可变呢

some_tuple = ("A", "tuple", "with", "values")

another_tuple = ([1, 2], [3, 4], [5, 6])

>>> some_tuple[2] = "change this"

TypeError: 'tuple' object does not support item assignment

>>> another_tuple[2].append(1000) # 这里不出现错误

>>> another_tuple

([1, 2], [3, 4], [5, 6, 1000])

>>> another_tuple[2] += [99, 999]

TypeError: 'tuple' object does not support item assignment

>>> another_tuple

([1, 2], [3, 4], [5, 6, 1000, 99, 999])

复制代码

消失的全局变量

e = 7

try:

    raise Exception()

except Exception as e:

    pass

复制代码

输出

>>> print(e)

NameError: name 'e' is not defined

复制代码

到底返回哪个值

def some_func():

    try:

        return 'from_try'

    finally:

        return 'from_finally'

复制代码

输出

>>> some_func()

'from_finally'

复制代码

诸如此类的例子一共有50多个

如果你能把这50多个特性背后的原理机制全部了解清楚,我相信你的python功力一定会上升一个层次。

传送门: github.com/leisurelich…

最后多说一句,想学习Python可联系小编,这里有我自己整理的整套python学习资料和路线,想要这些资料的都可以进q裙930900780领取。

本文章素材来源于网络,如有侵权请联系删除。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容