您的位置:首页 > 编程语言 > Python开发

《Python 核心编程》 学习记录

2016-05-21 20:28 393 查看
《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的对象,解释器会暂停工作,释放掉这个对象,以及只有它能访问的其他对象)

同时,垃圾回收器也会关注分配用量很大的对象。(????)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息