python学习过程二(《python核心编程》第三章)
这一章的知识点总结:
1.(\)符号是换行符号,但是在含有小括号、中括号、花括号时可以多行书写。另外就是三引号包括下的字符串可以跨行书写。
2.对象是通过引用传递的。在赋值时,不管这个对象是新创建的从,还是一个已经存在的,都是该对象的引用(并不是值)复制给变量。
3.档对象被创建并(将其引用)复制给变量时,该对象的引用计数就被设置为1.当同一个对象(的引用)又被赋值给其他变量时,或作为参数传递给函数、方法或类实例时,或者被复制为一个窗口对象的成员时,该对象的一个新的引用,或者称作别名,就被创建(则该对象的引用计数自动加1)。
eg
x = 3.14
y = x
设置x=3.14创建了一个浮点型对象并将其引用赋值给x,x是第一个引用,因此该对象的引用计数为1.语句y=x创建了一个指向同一对象的别名y。事实上并没有给y创建一个新的对象,而是该对象的引用计数增加了1.
x=3.14 对象被创建;
y = x 另外的别名被创建
foobar(x) 作为参数传递给函数(新的本地引用)
myList = [123, x, 'xyz'] 成为容器对象的一个元素
以上所有方式都会使得对象的引用计数加1,当引用计数为0是,对象被回收。
4.python不支持类似x++,++x这样的前置/后置自增/自减运算。
5.多元赋值 (x, y, z) = (1, 2, 'a string')
交换变量值时不再需要中间变量,只要(x, y) = (y, x)
6.变量无须事先声明;
变量无须指定类型;
程序员不用关心内存管理;
变量名会被“回收”;
del语句能直接释放资源。