datasheet

QbitAI量子位

文章数:996 被阅读:9726388

账号入驻

这个Python资源在GitHub上标星超8000,现在被翻译成了中文 | 资源

2018-11-30
    阅读数:
乾明 编辑整理
量子位 出品 | 公众号 QbitAI

最近,GitHub上一个关于Python的工程完工了。

一个名为“暮晨”的贡献者,把一个非常有趣的Python项目,翻译成了中文版。

这个项目是《What the f*ck Python!》,专门介绍 Python 里面那些奇奇怪怪的语言坑。

关于项目

项目的主体构成部分就是示例,一共分为5个部分,分别是:

Strain your brain!/大脑运动!

Appearances are deceptive!/外表是靠不住的!

Watch out for the landmines!/小心地雷!

The Hidden treasures!/隐藏的宝藏!

Miscellaneous/杂项

以上,总计51个示例。

每一个示例的结构都是一样的,以“Mutating the immutable!/强人所难”为例:

首先,会给出代码:

some_tuple = ("A""tuple""with""values")
another_tuple = ([12], [34], [56])

然后,给出Output( Python version):

>>> some_tuple[2] = "change this"
TypeError: 'tuple' object does not support item assignment
>>> another_tuple[2].append(1000# 这里不出现错误
>>> another_tuple
([12], [34], [561000])
>>> another_tuple[2] += [99999]
TypeError: 'tuple' object does not support item assignment
>>> another_tuple
([12], [34], [56100099999])

然后,对意外输出的结果进行简短的描述,在这个示例中,就是:

我还以为元组是不可变的呢…

接下来,就会对示例进行说明,简要叙述发生了什么以及为什么会发生。如有必要, 也会举例说明。

在这个示例中是这样的:

  • 引用
    https://docs.python.org/2/reference/datamodel.html

不可变序列 不可变序列的对象一旦创建就不能再改变。(如果对象包含对其他对象的引用,则这些其他对象可能是可变的并且可能会被修改; 但是,由不可变对象直接引用的对象集合不能更改。)

  • += 操作符在原地修改了列表. 元素赋值操作并不工作, 但是当异常抛出时, 元素已经在原地被修改了。

有些地方,贡献者还会给出译注,比如整个示例中就是:

对于不可变对象, 这里指tuple, +=并不是原子操作, 而是extend和=两个动作, 这里=操作虽然会抛出异常, 但 extend 操作已经修改成功了。

其他还有50个示例,等你来看~

怎么使用?

当然,要学习一下怎么使用这个资源。项目贡献者在用法部分表示,最好依次阅读下面的示例。

然后,在阅读每一个示例的时候,这样做:

仔细阅读设置例子最开始的代码。

阅读输出结果。

确认结果是否如你所料。

确认你是否知道这背后的原理。

如果不知道, 深呼吸然后阅读说明 (如果你还是看不明白, 别沉默!可以提问题)。

如果知道, 给自己点奖励, 然后去看下一个示例。

此外,还可以在命令行阅读 WTFpython,有 pypi 包 和 npm 包(支持代码高亮),不过都是英文版的。

关于作者

这个项目的原作者,是一个名为Satwik Kansal的印度小哥。

GitHub上的介绍称,在深度学习和去中心化应用方面是一个“老司机”。

目前,英文版资源,标星已经8.3k了。

传送门

中文版:
https://github.com/leisurelicht/wtfpython-cn

英文原版:
https://github.com/satwikkansal/wtfpython

年度评选申请

加入社群

量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



最新有关QbitAI的文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved