标签:
1)井号(#)表示之后的字符为 Python 注释
2)换行 (\n) 是标准的行分隔符(通常一个语句一行)
3)反斜线 ( \ ) 继续上一行,以下两种情况可以不用\
在使用闭合操作符时,单一语句可以跨多行。比如
()[]{}
三引号包括下的字符串也可以跨行
4)分号 ( ; )将两个语句连接在一行中,即同一行可以书写多个语句。
5)冒号 ( : ) 将代码块的头和体分开
6)语句(代码块)用缩进块的方式体现,不同的缩进深度分隔不同的代码块
7)Python 文件以模块的形式组织
变量无需事先声明,在第一次赋值时自动声明
变量无需指定类型,对象的类型和内存占用都是运行时决定的
变量只有被创建和赋值后才能使用
赋值操作符
(=)
赋值并不是直接将一个值赋给一个变量,而是将对象的引用赋值给变量。
在
python
语言中,对象是通过引用传递的。
Python
的赋值语句不会返回值。链式赋值没问题
增量赋值
(+=…):
增量赋值时,第一个对象仅被处理一次。可变对象会被就地修改,不可变对象则和
A=A+B
的结果一样(分配一个新对象)
多重赋值:
将一个对象赋值给了对个变量。当然也可以将多个对象赋值给多个变量。
将多个变量同时赋值:
这种方式赋值,等号两边的对象都是元组
,
通过这种赋值方式可以实现无需中间变量就可以交换两个变量的值。
注释:注释不能缺少,也不能过度
文档:通过__doc__特别变量,动态获得文档字符串
缩进:最好采用4个空格,制表符tab在不同编辑器中对它的设置不一样,避免使用。
Python 中下划线的特殊用法:
1)_xxx 不用‘from module import *‘导入
2)__xxx__系统定义名字
3)__xxx 类中的私有变量名
起始行:通常只有在类Unix环境下才使用起始行,这样无需直接调用解释器,仅输入脚本名字就能执行脚本。
模块文档:简要介绍模块的功能及重要全局变量的含义,模块外可以通过module.__doc__访问
模块导入:函数内部的模块导入代码不会执行,除非该函数正在执行
变量定义:这里是全局变量定义,本模块中的所有函数可直接使用。为了便于维护,提高性能并节省内存,尽量使用局部变量。
类定义语句:所有的类都需要在这里定义。当模块导入时class会被执行,类也就会被定义。类的文档变量:class.__doc__
函数定义语句:此处定义的函数可以 模块名.函数名()在外部调用,当模块被导入时def语句会被执行,函数也就都会定义好,函数的文档变量:function.__doc__
主程序:无论这个模块是被别的模块导入还是作为脚本执行,都会执行这部分代码。通常包括变量赋值、类定义、函数定义,随后检查__name__来决定是否调用另一个函数(main),这个函数是放置测试代码的好地方。另外,python标准库中还提供了unittest模块(PyUnit),是一个测试框架,当需要对一个大系统的组件进行正规系统的回归测试时会派上用场。通常只有主程序模块中有大量可执行代码,所有其他被导入的模块只应该有很少的顶级执行代码,所有的功能代码都应该封装在函数或类中。
__name__的作用:能在运行时检测该模块是被导入的还是直接执行的。如果模块是被导入,__name__的值为模块名称;如果模块是直接执行,__name__的值为’__main__’
Python解释器承担了内存管理的复杂任务。使用引用计数(每个对象各有多少引用)来保持追踪内存中的对象。
增加引用计数的情况
对象被创建并赋值给变量,该对象的引用计数就被设置为1;
对象被赋值给其他变量
对象被作为参数传递给函数、方法或类实例
对象被赋值为一个窗口对象的成员
对象被加入到某个容器当中
减少引用计数的情况
对象的引用被销毁时,引用计数会减少。
当引用离开其作用范围(函数运行结束)
变量被重新赋其他对象时
使用del语句删除一个变量
一个对象被移除一个窗口对象
容器对象本身的引用计数变成0
标签:
原文地址:http://www.cnblogs.com/ginb/p/5094768.html