本文共 4499 字,大约阅读时间需要 14 分钟。
一.继续 (\)
Python语句,一般使用换行分隔,也就是说一行一个语句, 一行过场的语句可以使用反斜杠"\" 分解成几行.
两种情况列外一个语句不使用反斜杠也可以跨行. 在使用闭合操作符时,单一语句可以哭啊多行. 例如: 在含有小括号,中括号,花括号时可以多行书写 . 另外就是三引号包括下的字符串也可以跨行书写 .
二.多个语句构成代码组 (:)
三 . 代码组由不同的缩进分隔
同一代码组的代码必须严格左对齐.
核心风格 : 缩进四个空格宽度,避免使用制表符.
四.同一行书写多个语句 (;)
五.模块
注意:赋值并不是直接将一个值赋给一个变量,尽管你可能根据其他语言编程经验认为应该如此. 在Python中,对象是通过引用传递的. 在赋值时,不管这个对象是新创建的.还是一个已经存在的,都是将该对象的引用(并不是值) 赋值给变量.
赋值运算符 : += , -=, *= , /= , %= , **= ,<<= ,>>= ,&= ,^= , /=
增量赋值 : 增量赋值相对普通赋值不仅仅是写法上的改变,最有意义的变化是第一对象仅被处理一次.可变对象会被就地修改(无修改拷贝引用) , 不可变对象则和 A = A+ B结果一样(分配一个新对象) .
多重赋值 : x = y = z = 1 . 这个例子中, 一个值为1的整数对象被创建,该对象的同一个引用被赋值给x,y和z . 也就是将一个对象赋给了多个变量. 当然, 在Python当中,将多个对象赋给多个变量也是可以的.
标识符是电脑语言中允许作为名字的有效字符串集合 . 其中,有一部分是关键字,构成语言的标识符. 这样的标识符是不能坐它用的标识符的,否则会引起语法错误.
合法的Python标识符 : 第一个字符必须是字母或下划线 , 剩下的字符可以是字母和数字或下划线,大小写敏感.
关键字 : import keyword , keyword.iskeyword() 检测是否为关键字 .
内建 : 除了关键字外,Python还有可以在任何一级代码使用的"内建" 名字集合,这些名字可以由解释器设置或使用.
专用下划线标识符 : Python用下划线作为变量前缀和后缀指定特殊变量.
a. _xxx , 不用from module import * 导入b. xxx 系统定义名字c. __xxx 类中的私有变量名注释 : 注释对于自己和后来人来说都是非常重要的,特别是对哪些很旧没有被动过的代码而言.记住,确保注释的准确性.
起始行 : 有起始行就能够仅输入脚本名字来执行脚本,无序之界调用解释器.
模块文档 : 简要介绍模块的功能及重要全局变量的含义,模块外可通过module.doc访问这些内容.
变量定义 : 这里定义变量为全局变量,本模块中的所有函数都可直接使用. 从好的编程风格角度说,除非必须,否则就要尽量使用局部变量代替全局变量.
类定义语 : 所有的类都需要在这里定义.当模块被导入时,class语句被执行,类也就会被定义. 类的文档变量是class.doc.
函数定义语句 : 此处定义的函数可以通过module.function()在外部被访问到,当模块被导入时def 语句会被执行,函数也就都会定义好,函数的文档变量是function.doc
主程序 : 无论这个模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码. 通常这里不会有太多功能性代码,而是根据执行的模式调用不同的函数.
推荐代码风格 : 主程序调用man()函数 . 主程序代码通常都和你前面看到的代码相似,检查name变量的值然后再执行相应的调用 . 主程序中的代码通常包括变量赋值,类定义和函数定义,随后检查name来决定是否调用另一个函数(通常调用main())函数来完成该模块的功能. 主程序通常都是做这些事. 不管用什么名字,想强调一点那就是: 这儿是放置测试代码的好地方. 大部分Python模块都是用于导入调用的,直接运行模块应该调用该模块的回归测试代码 . 请记住, 绝大部分的模块创建的目的是为了别人调用而不是作为独立执行的脚本.
核心笔记 : name指示模块应如何被加载 : 由于主程序代码无论模块是被导入还是被直接执行都会运行, 我们必须知道模块如何决定运行方向. 一个应用程序可能需要导入另一个应用程序的一个模块,以便重用一些有用的代码(否则就只能用拷贝粘贴那种非面向对象的愚蠢手段) . 这种情况下,你只想访问哪些位于其它应用程序中的代码,而不是想运行那个应用程序. 因此一个问题出现了 . Python是否有一种方法能在运行时检测该模块是被导入还是被直接执行呢?
动态类型 : Python中不但变量名无需事先声明,而且也无需类型声明. Python语言中,对象的类型和内存占用都是运行时确定的.尽管代码被编译成字节码,Python仍然是一种解释型语言. 在创建--也就是赋值时,解释器会更具语法和右侧的操作数来决定新对象的类型. 在对象创建后,一个该对象的用用会被赋值给左侧的变量.
内存分配 : 作为一个负责人的程序员,我们知道在为变量分配内存时,是在借用系统资源 , 在用完之后,应该释放借用的系统资源.Python解释器承担了内存管理的复杂任务,这大大简化了应用程序的编写. 你只需要关心你要解决的问题,至于底层的事情放心交给Python解释器去做就行了 .
引用计数 : 当对象被创建时,就创建了一个引用计数,当这个对象不再需要时,也就是说,这个对象的引用计数变为0时,它被垃圾回收 .(严格来说这不是100%正确,不过现阶段你可以就这么认为)
4.增加引用计数 : 当对象被创建并(将其引用) 赋值给变量时, 该对象的引用计数就被设置为1 .当同一个对象(的引用)又被赋值给其他变量时, 或作为参数传递给函数,方法或类实例时,或者被赋值为一个窗口帝乡的成员时,该对象的一个新的因运用,或者称作别名,就被创建(则该对象的引用计数自动加1). 总之,对象的引用计数在以下情况会增加 :7.垃圾回收 : 不再被使用的内存会被一种称为垃圾收集机制释放. 垃圾收集器是一块独立代码,它用来寻找引用计数为0 的对象. 它也负责检查哪些虽然引用计数大于0 但也应该销毁的对象. 特定情形会导致循环引用.
转载于:https://blog.51cto.com/12654424/2046418