Fluent Python笔记

第一章_概述了python数据模型中的特殊方法,以及如何通过特殊方法实现自定义的数据模型。并且通过特殊方法实现与标准元对象协议类似的接口,方便快速使用以及扩展。

The Zen of Python

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let’s do more of those!
—Tim Peters
https://www.python.org/doc/humor/#the-zen-of-python

Python语言参考手册中的Data Model
https://docs.python.org/3/reference/datamodel.html

Alex Martelli 《Python技术手册》作者Stack Overflow主页
http://stackoverflow.com/users/95810/alex-martelli

第二章_本章主要描述了python中的序列类型和元组类型以及集中引申的python数据模型。

1.python序列类型有两种分类,可变和不可变序列以及扁平序列和容器序列,扁平序列往往更加快速,轻便,灵活,而容器序列使用起来必须要小心在嵌套其他数据结构的时候,要多花心思保证代码的正确性…(不是很懂

2.列表推倒和生成器表达式提供了灵活构建和初始化序列的方式,生成器表达式相比列表推导可以避免占用额外的内存。
3.元组在python中扮演了两个角色,既可以用作无名称的字段的记录,又可以看作不可变的列表。当元组被用来当作记录使用的时候需要使用拆包从元组中提取各种不同的信息,新引入的句法让元祖拆包更便利,代表不确定多个,让用户可以忽略不需要的字段。具名元组是一个很方便的用法,在节省空间的同时,可以很方便的通过名字来获取元组各个字段信息的值,另外还有个._asdict()方法来把记录变成OrderedDict类型。

4.序列切片,实在是太好用了…让我还没有实践..就觉得要沉迷了。可以为序列命名写出更加具有可阅读性的代码,可以选择支持NumPy中的多为切片和省略,另外对切片赋值,是一个修改可变序列的捷径。

5.重复拼接seq * n 在正确使用的前提下,可以很方便的初始化带有不可变元素的多维列表 ,但是要注意不可以拼接链接序列,会导致复制出多个相同的序列。增量赋值+=和*=会区别的对待可变序列和不可变序列,在遇到不可变序列时,这两个操作会生成新的序列,而遇到可变序列,这个序列就会被修改。

6.序列的sort和内置的sorted都很灵活接受key和reserve的调控,如果在插入新元素的同时还想保持排序那么用到bisect.insort或者bisect.bisect是很好的选择。

7.除了列表和元组,python标准库里还有array.array 另外还有NumPy和SciPy两个强大的大规模数值计算库

8.本章末尾介绍了collections.deque这个类型具有线程安全的特性。

Removal of TupleParameter Unpacking
http://python.org/dev/peps/pep-3113/

Python Tutor——Python运行可视化工具
http://www.pythontutor.com

fluent interface——wiki
https://en.wikipedia.org/wiki/Fluent_interface

Raymond Hettinger 排序集合模块 p83
http://code.activestate.com/recipes/577197-sortedcollection/

快速序列化数字类型方法 pickle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Fluent Python》是一本非常优秀的Python编程指南,它不仅深入浅出地介绍了Python语言的内部原理以及高级编程技巧,而且还涵盖了众多实用的代码示例和案例,读者不仅能够学习到Python语言的基础知识,还能够了解到Python编程的最佳实践和设计模式。 对于Python初学者来说,《Fluent Python》是一本非常好的入门指南。本书系统地介绍了Python语言的各个方面,包括Python语法、高级数据结构、函数式编程、面向对象编程、并发编程等,帮助读者掌握Python的基本使用方法和编程规范。而对于有经验的Python开发者来说,《Fluent Python》则提供了更加深入和高级的内容,如元编程、元类、装饰器等,这些内容可以帮助读者更加高效地编写Python代码和进行系统设计。 《Fluent Python》还提供了丰富的代码示例和案例,包括网络编程、数据处理、机器学习等,这些例子可以帮助读者深入理解Python编程的应用场景和解决问题的方法。此外,《Fluent Python》还有大量的扩展阅读内容,如函数式编程、计算机科学、Python社区等,让读者更加深入地了解Python编程及其应用。 总之,如果你想要深入学习Python编程,掌握Python语言的内部原理、高级特性和最佳实践,那么《Fluent Python》是一本非常值得推荐的书籍。 ### 回答2: 《Fluent Python》是一本高级Python编程指南,它由Luciano Ramalho撰写,主要涵盖了Python 3的高级语法和设计模式。 与其他Python书籍不同,《Fluent Python》聚焦于如何使用Python的核心概念和最佳实践,以及如何将它们应用于实际问题。本书分为三部分,分别是Python的数据模型、函数作为对象以及面向对象编程和其他高级话题。 在《Fluent Python》中,作者旨在帮助读者深入理解不同类型的Python对象以及它们之间的相互作用。此外,还介绍了Python中的装饰器、生成器、协程和异步编程等技术。此外,还涵盖了如何使用Python的文档、测试和调试工具,以及如何处理日期、时间和时区的常见问题。 《Fluent Python》提供了大量的示例代码和实现,以便读者深入学习和练习。它适用于有一定Python编程经验和想要提高自己的Python能力的读者,也适合那些希望在编写高效Python代码方面深入了解的开发人员。 总之,《Fluent Python》是一本全面深入的Python编程指南,适合有一定Python编程基础的读者学习。通过学习本书,读者将掌握Python的高级语法、设计模式和最佳实践,提高自己的Python编程能力。同时,本书的实例丰富,对于Python开发工作者,也是一个较为实用的参考工具。 ### 回答3: Fluent Python是一本由Luciano Ramalho所写的Python编程语言进阶书籍,其全称是《Fluent Python: Clear, Concise, and Effective Programming》。Fluent Python的PDF版本则是该书的电子版,方便读者进行在线阅读或是离线下载,进行学习和参考。 该书主要涵盖了Python编程语言的核心概念和高级特性,旨在帮助读者了解Python的内部工作机制,并使用Python编写优美的、高效的、易于维护的代码。该书主题从简单的数据结构和函数式编程开始,到复杂的并发编程和元类等高级技术,全方位覆盖了Python编程的方方面面。 Fluent Python的PDF版本主要加入了方便的电子阅读功能,例如利用大纲和书签浏览内容、搜索文本等。该电子版PDF的另一个优点是可以离线学习,无需互联网连接,可以随时随地进行学习、阅读和练习。 总之,Fluent Python PDF是Python编程语言的进阶参考书籍的电子版本,支持离线学习,并提供了便捷的电子阅读功能。该书的内容涵盖Python编程的高级技术,并且适合已经入门的Python开发人员,帮助他们深入学习Python的内部工作机制,并提高他们的编程技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值