Fluent Python笔记

本书深入探讨Python数据模型,涵盖特殊方法、序列类型、映射类型、字符编码处理、函数特性和装饰器设计模式。讲解了Python中的列表推导、元组、字典、编码解码、函数注解以及装饰器的使用,强调简洁、易读的编程哲学。
摘要由CSDN通过智能技术生成

第一章_概述了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值