Python学习手册(第4版)是学习Python比较好的教程。
(具体教程网上去搜,很多!)
由于看的比较快,很多知识记得不是很牢。
记笔记如下,便于一会按内容翻看。(页码是PDF文件的页码,不是书的页号)
----------------------------------------------
P143 文件读写
P147 用户定义的类
P201 字符串 P213 字符串的步进和反转 P227字符串格式化表达式
P243 第8章 列表与字典
P283 元组、文件及其他 pickle模块存储对象、struct模块构造解析二进制数据
空数据为假;非空数据为真。None对象
P308 第10章 Python语句
P369 第13章 while和for循环
P384 range
P387 zip and map
P390 enumerate
P393 第14章 迭代器和解析 iter list 列表解析
>>>lines=[line.rstrip() for line in open('scrip.cy') if line[0]=='p']
P408 unzip
P416 第15章文档
“Module Docs”查看安装包内部的说明文件
P436 第16章函数基础
P461 工厂函数--一个能够记住嵌套作用域的变量值的函数。
P463 lambda
P466 nonlocal
P477 传递参数
列表和字典等可变对象是通过对象引用进行传递的,可变对象能够在函数内部进行原处的改变。
P483 函数参数匹配表
P507 递归
P514 函数注解
P516 匿名函数:lambda
P522 在序列中映射函数:map
P523 函数式编程工具:filter reduce
P532 理解列表解析
P534 生成器 yield 生成器表达式 (c *4 for c in 'asdf') 用圆括号
P549 集合解析语法{f(x) for x in S if P(x)}
字典解析语法{key: val for (key,val) in zip (keys,vals)}
{x:f(x) for x in items}
这两种形式都是一次构建所有对象。如需根据需要产生键值,生成器表达式更合适
P572 模块
P578 模块搜索路径
模块名称只能包含字母、数字及下划线。不可有空格
from module1 import * 取得模块全部变量。
P603 模块包 包导入 每个目录内需有_init_.py这个文件
P625 高级模块话题 __X __all__ __future__ __name__ __main__
P633 元程序metaprogram(内省introspection)
M.name
M._dict_['name']
sys.modules['M'].name
gatattr(M,'name') 上述4个表达式得到相同的属性和对象
P636 用名称字符串导入模块
>>> s='numpy'
>>> exec('import '+s)
模块重载时,模块导入的子模块不会自动重载。但可以手动
P652 类和OOP
P659 构造函数 __init__
P667 类:程序可以取出、修改或创建其所引用的任何对象的属性。
子类所继承的类称为超类。超类列在子类开头的括号中。
Python中的通用惯例,类名以一个大写字母开头
P671 重载运算符
P701 委托 __getattr__
P703 使用内省工具
instance.__class__ object.__dict__
P709 存储数据 pickle dbm shelve
P719 class
P724 子类避免完全取代超类的构造函数
P743 第29章 运算符重载
运算符重载让类拦截常规的python运算;
类可重载所有python表达式运算符
类也可重载打印、函数调用、属性点号运算等内置运算;
重载使类的实例的行为像内置类型;
重载是通过提供特殊名称从类方法来实现的。
P782 委托 __getattr__ 包装类(代理类)
P784 变量名压缩 (以双下划线开头的变量名,只发生在class语句内)
P787 方法是对象:绑定或无绑定
P804 类是对象:通用对象的工厂
def factory(aClass,*args):
return aClass(*args)
P808 类的高级主题