《Python 核心编程》 学习记录

来源:互联网 发布:极度恐慌网络 编辑:程序博客网 时间:2024/05/30 05:26

《Python 核心编程》 学习记录
首先!!!python 不同于c/c++,是一种动态语言:变量的类型在程序执行时才知道,没有预处理器这样的东西
第一章—-
1.函数设置的原则:只接受参数输入,并返回处理成功的参数;尽量不要在函数内部定义输入输出(除非这个函数本身就是用来输出的)
2.常用的一些内建函数
dir([obj])-----------------显示对象属性,如果没有提供参数,则显示全局变量的名字
help(obj)-----------------帮助文档
int(obj)-------------------字符转换
len(obj)------------------长度
open(filename,mode)---打开文件
range(a,b)----------------返回一个整数列表
str(obj)-------------------转化成字符串
type(obj)-----------------返回对象

dir()详解: 似乎能够探测当前环境下的一些信息并显示出来,很强大。
3.关于缩进
python的缩进直接代表代码组的分块,比c++严格的多。
由于不同编辑器对一个tab的解释不同,所以千万用四个space代替!!!!!!
4**.赋值语句** bwtween pyrhon and c++
c++中,每条赋值语句都会被求值
而在python中,完全不同!!!py中,对象是通过引用传递的
5**.多元赋值** ––––拯救三变量法交换值
x, y = y, x
6.下划线的特殊性
xxx 表示此对象不用 from module import导入
xxx 系统定义的名字
__xxx 类中的私有变量名,自己写代码时应该遵循这一做法
7.动态的帮助文档 _doc_
模块,类声明,或函数声明中第一个没有赋值的字符串,可用属性.doc访问
8.模块的结构布局
**–(起始行)
–模块文档(module.doc)
–模块导入(本模块需要导入的模块)
–变量定义
–类定义
–函数定义
–(特别注意)主程序**======这里我们需要强调一下:
所有模块都有能力去执行代码,没有缩进的代码(顶级代码)在模块被导入时会自动执行。为了避免不必要的开销,只有主程序模块中有大量的顶级可执行代码。所有的功能代码都应该被隐藏在函数或类中。
我们一般把模块的主程序部分作为回归测试代码。
name系统变量可以帮助判断模块是被直接执行还是被导入(‘main’ 或者 模块名)
9.模块测试 unittest模块
还未接触到,不做评论
10.内存管理
变量无需事先声明。与c++不同,变量在第一次被赋值时自自动声明。
变量的类型也不用人工干涉,解释器会自动推导(也许是这一点导致了python比c++慢的多)
垃圾收集机制
(1).引用计数
记录着这一对象有多少引用
计数增加====1.对象被创建 2.别名被创建 3.作为参数传递给函数 2.成为容器的元素
计数减少====1.引用离开范围被销毁 2.对象的别名被被绑定到另外的对象3.del语句
(2). 垃圾收集器
这是一块独立的代码,它会寻找引用计数为0的对象,并销毁之。(当发现引用计数为0的对象,解释器会暂停工作,释放掉这个对象,以及只有它能访问的其他对象)
同时,垃圾回收器也会关注分配用量很大的对象。(????)

0 0