《Python 核心编程》 学习记录
2016-05-21 20:28
393 查看
《Python 核心编程》 学习记录
首先!!!python 不同于c/c++,是一种动态语言:变量的类型在程序执行时才知道,没有预处理器这样的东西
第一章—-
1.函数设置的原则:只接受参数输入,并返回处理成功的参数;尽量不要在函数内部定义输入输出(除非这个函数本身就是用来输出的)
2.常用的一些内建函数:
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的对象,解释器会暂停工作,释放掉这个对象,以及只有它能访问的其他对象)
同时,垃圾回收器也会关注分配用量很大的对象。(????)
首先!!!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的对象,解释器会暂停工作,释放掉这个对象,以及只有它能访问的其他对象)
同时,垃圾回收器也会关注分配用量很大的对象。(????)
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- 《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版]