Python 3学习笔记(上卷)

Python 3学习笔记(上卷)

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.935 评价豆瓣读书
免费试读

作品简介

经过9年的发展,Python 3生态已相当成熟。无论是语言进化、解释器性能提升,还是第三方支持,都是如此。随着Python 2.7 EOF日趋临近,迁移到Python 3的各种障碍也被逐一剔除。是时候在新环境下学习或工作了。

人们常说Python简单易学,但这是以封装和隐藏复杂体系为代价的。仅阅读语言规范很难深入,亦无从发挥其应有能力,易学难精才是常态。《Python 3学习笔记(上卷)》尝试通过分析解释器的工作机制来解析Python 3.6语言理论,以期帮助读者加深理解。

《Python 3学习笔记(上卷)》着重于剖析语言的相关背景和实现方式,适合有一定Python编程基础的读者阅读、参考。

自1996年从事计算机软件开发工作以来,已20春秋。期间供职于北大方正、西单电子商务、九城数码、知乎等公司。主要从事核心开发、架构设计,以及部分管理工作。

作品目录

载入中

热门划线

  1. 静态编译和动态解释型语言对于变量名的处理方式完全不同。静态编译器或链接器会以固定地址,或直接、间接寻址指令代替变量名。也就是说变量名不参与执行过程,可被剔除。但在解释型动态语言里,名字和对象通常是两个运行期实体。名字不但有自己的类型,还需分配内存,并介入执行过程。甚至可以说,名字才是动态模型的基础。2 人
  2. 名字与目标对象之间也仅是引用关联。名字只负责找人,但对于此人一无所知。鉴于在运行期才能知道名字引用的目标类型,所以说Python是一种动态类型语言。2 人
  3. 赋值操作仅是让名字在名字空间里重新关联,而非修改原对象。2 人
  4. 因为传递是通过复制名字关联来实现的,类似于复制指针,或许正确的说法是pass-by-object-reference。2 人
  5. Python解释器虽然也有执行栈,但不会在栈上为对象分配内存。可以认为所有原生对象(非C、Cython等扩展)都在“堆”上分配。2 人
  6. 除法运算符分单斜线和双斜线两种。单斜线被称作 True Division,无论是否整除,总是返回浮点数。而双斜线Floor Division会截掉小数部分,仅返回整数结果。2 人
  7. 布尔是整数子类型,也就是说True、False可被当作数字直接使用。2 人
  8. 使用f前缀标志,解释器解析大括号内的字段或表达式,在上下文名字空间查找同名对象进行值替换。格式化控制依旧遵循format规范,但阅读体验上却更加完整和简洁。2 人
  9. 每个运算符都以特定函数或方法实现,可像普通对象那样作为参数传递。2 人
  10. 可移除源码,改为直接部署字节码文件(.pyc),这算是一种轻度保护。2 人

喜欢这本书的人也喜欢