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"

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> 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

到底返回哪个值

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def some_func():
    try:
        return 'from_try'
    finally:
        return 'from_finally'

输出

>>> some_func()
'from_finally'

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

posted @ 2022-10-07 20:32  I'm_江河湖海  阅读(6)  评论(0)    收藏  举报