首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一些有趣且鲜为人知的 Python 特性

GitHub 上有个非常有意思的仓库(What the f*ck Python!) ,作者列举了很多有趣且鲜为人知的 Python “特性”,这个有趣的项目意在收集 Python 中那些难以理解和反人类直觉的例子,并尝试讨论这些现象背后真正的原理!

首先我们看个和数字相关示例:

代码解释

1. id() 函数是Python 内置函数,用于获取对象的内存地址;

2. 当你启动Python 的时候,经常使用的数字 -5 到 256 已经被分配好了内存;

3. 解释器并没有在执行 y = 257 时意识到我们已经创建了一个整数 257,所以它在内存中又新建了另一个对象。

另外一个例子:

some_list=[1,2,3]

some_dict={"key_1":1,"key_2":2,"key_3":3}

some_list=some_list.append(4)

some_dict=some_dict.update({"key_4":4})

你知道此时some_list 、some_dict 的值吗?

>>>print(some_list)

None

>>>print(some_dict)

None

代码解释

大多数修改序、映射对象的方法, 比如 list、append、dict.update, list.sort 等等,都是原地修改对象并返回 None,这样做的理由是, 如果操作可以原地完成, 就可以避免创建对象的副本来提高性能。

如果想要添加值到list里面只需要 some_list.append(4) 即可。

当然这个库更多令人惊讶的特性等着你去探索,比如关于字符串操作,迭代列表时删除元素、循环变量泄漏、捕获异常等等,总共有近100来个知识点总结,有兴趣的童鞋可以好好研读,有利于对 Python 的进一步提高。目前这个原版英文库已经有12K+人关注,而且现在有网友提供了中文翻译版,大家可以根据自己的情况进行选择阅读。

英文地址:

https://github.com/satwikkansal/wtfpython

中文地址:

https://github.com/leisurelicht/wtfpython-cn

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190114G0EXSK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券