经常逛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'
您可能感兴趣的文章
本文地址:http://www.pythongcs.cn/509.html
文章标签:python
温馨提示:文章内容系作者个人观点,不代表Python工程狮对观点赞同或支持。
版权声明:本文为转载文章,来源于 刘志军 ,版权归原作者所有,欢迎分享本文,转载请保留出处!
文章标签:python
温馨提示:文章内容系作者个人观点,不代表Python工程狮对观点赞同或支持。
版权声明:本文为转载文章,来源于 刘志军 ,版权归原作者所有,欢迎分享本文,转载请保留出处!