Python核心编程(第二版)学习笔记02 【第3章 Python基础】
2009-4-16 20:45 Tony
1 python语句基本规则和特殊字符:
反斜杠 \ 继续上一行
分号 ; 将两个语句连接在一行中
冒号 : 将代码块的头和体分开
2 有两种情况不使用反斜杠也可以跨行。1)在使用闭合操作符时,单一语句可以跨多行,例如:小括号、中括号、大括号;2)三引号包括下的字符串也可以跨行书写
3 python中的赋值,并不是直接将一个值赋给一个变量,而是将该对象的引用赋值给变量(现在我也不太清楚,下一章中应该就详细描述了)
4 赋值语句没有返回值,不像C语言中的赋值语句可以返回值。形如:y = (x = a + b)这个表达式是错误的,但可以写成形如:y = x = a + b
5 增量赋值 += -= *= /= %= **= <<= >>= &= ^= |=
增量赋值的好处是,可变对象会被就地修改,无需拷贝引用
6 多重赋值 x = y = z = 1
一个值为1的整型对象被创建,该对象的同一个引用被赋值给x,y和z
7 多元赋值 x, y, z = 1, 2, 'hello'
等号两边的对象都是元祖,括号被省略了。元祖的小括号是可选的。上面等价于(x, y, z) = (1, 2, 'hello')
8 交换两个变量的值 x, y = y, x
在其他语言中,都需要第三个临时变量来保存中间值,python可以直接使用多元赋值来实现
9 python中的关键字在模块keyword中,由keyword.kwlist可以查到,并可以通过iskeyword()函数来判断一个标识是否是关键字
10 标识符中下划线的意义:
_xxx 看作是模块或类的私有变量,在模块外或类外不能被直接访问
__xxx__ 系统定义的名字,普通变量应该避免定义这种标识符
11 在模块、类定义、或者函数定义中第一个没有赋值的字符串即作为文档字符串,通过obj.__doc__访问
12 python文件结构模版
(1)起始行
(2)模块文档字符串
(3)模块导入
(4)变量定义
(5)类定义
(6)函数定义
(7)主程序
13 导入一个模块时,该模块的主代码将会被执行,模块里定义的类的主代码也会被执行,但是模块里定义的函数和类中的方法在导入时不执行
所有模块都有能力来执行代码,最高级别的python语句即没有缩进的代码行,在模块导入时会被执行
14 如果一个模块是通过脚本直接执行的,则它的__name__属性值为"__main__" ,否则被别的模块导入的,则它的__name__值为该模块的名字
15 python中不需要定义变量,也不需要类型声明,变量类型和内存占用都是在运行时确定的
16 引用计数器 python记录所有使用中的对象各有多少引用,当引用为0时,会回收这个对象所占用的内存
增加引用计数器 当对象被创建并赋值给变量时,该对象的引用计数器被设置为1,当同一个对象又被赋值给其它变量时、或者作为参数传递给函数、方法或类实例时,新的引用被创建,引用计数器都会自动加1
如 x = 3.14 对象被创建,引用计数器值为1
y = x 新的引用被创建,引用计数器值为2
fun(x) 新的引用被创建,引用计数器值为3,函数执行完后,引用计数器值减1
减少引用计数器 当对象的引用被销毁时,引用计数器值就会减小
例如 引用离开其作用域范围;当变量被赋值了另一个对象时,原对象的引用计数器会自动减1;使用del语句显示地销毁引用
17 使用os.linesep 表示换行,这样换行跟平台无关
来源:oschina
链接:https://my.oschina.net/u/4908/blog/416