- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 语法和程序设计风格
3.1 语法和句法
#后面是注释(有时候可以用来调试程序)
换行符\n标准的文本行分割符
\表示续行(当有闭合操作符的时候,如小,中,花括号时可以不用)
;隔开同一行上的两条语句
:分隔标题及后续子句(用在while,if,def,class之后)
语句按照子句的方式进行组织
子句是通过语句的缩进来区分彼此的
Python 文件被组织为模块
3.2 变量分配
1 等号=
实际分配的是该对象的引用索引(reference)而不是一个值
没有赋值表达式,即赋值后不能再赋值。
X+=1 合法(增量赋值)
2 把一个对象赋值给多个变量
X=y=z=1
3 把多个对象赋值给多个变量,左右都是tuple,
(X,y,z)=(1,2,‘a string’) 表列赋值
4 可以直接交互两个变量的值
(x,y)=(y,x)is OK(注意,不能分别写,x=y;y=x是错误的)
3.3 标识符
1 合法的标识符
字母或者_开头
后续可以是字母,数字,下划线
大小写敏感
2 关键字 28个
3 内建字(由解释器设置或者使用的)
4 特殊的下划线标识符(不用下划线作为开头)
_xxx_ 系统定义名字
_xxx 类中的私有变量名
3.4 程序设计风格准则
1 注释 2文档 3 缩进(4个空格最好)
4 选择合适的标识符名称
3.4.1 模块的结构和布局
1 启动语句行(用在unix下,无需调用解释器就可以执行脚本)
2 模块文档 (表示模块的功能,通过module._doc_来查看)
3 模块导入
4 变量定义(全局)
5 类定义(若有)
6 函数定义(若有)
7 主程序
If _name_==’_main_’:
Main()
_name_系统变量指示main是否需要执行:当此模块是被import的,则_name_为模块名称,所有main()不会被执行,如果此模块是被直接执行,则_name_的值为‘_main_’,main()就会被执行。
注意:大多数项目都是有一个主应用程序和一些必要的导入模块组成的。大多数模块是为了被导入而不是被直接执行的脚本程序而创建的。
通常只有主程序模块中有大量的顶级可执行代码,所有其他被导入的模块只应该有很少的顶级执行代码,所有的功能代码都应该封装在函数或类当中。
3.5 内存管理
变量不必提前定义
变量类型不必定义
程序员不必关心内存管理
变量名可以“回收使用”
Del语句允许明示性地收回使用中的变量
3.5.1 变量定义
不必先定义,但是被赋值前是无法使用的
3.5.2 动态确定变量的类型
3.5.3 内存分配
Py是一种应用程序编写人员的工具,使用它就不必再考虑底层的,面向操作系统或者面向机器的工作。
3.5.4 废弃物回收
3.5.5 引用计数(reference count)
1 对象被创建
2 或者另外的别名被创建
3 或者作为参数传递给函数
4 或成为容器对象的一个元素
都将导致这个obj的rc值增加。
1 函数结束
2 变量被重新赋值
3 从窗口对象中被移除 或者 窗口对象消失
4 del
都将导致这个obj的rc值减少
创建变量时为1,把变量赋值给其他变量,或者函数调用时+1,函数调用结束时-1,删除某个变量-1,离开变量的作用范围-1,当减少成0时废弃物回收,即内存空间回收。
3.5.6 del语句
Del语句会把一个对象的引用减少一个数
3.5.7 减少引用计数
明确的出现在del语句里
被赋值(重新赋值)为另外一个对象
超出作用范围(当函数结束时)
3.6 相关模块和开发工具
Py风格指南 py快速参考指南 py常见问答
调试器:pdb
记录器:logging
性能测试器:profile,hotshot,cProfile
第四章 对象
4.1 py 中的对象
包含任意数据结构类型的任何构造都是对象。
三个特性:
实体(identity):区分对象的独一无二的标识符,通过id()获取
类型(t
原创力文档


文档评论(0)