`
wsql
  • 浏览: 11780403 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

python 核心编程学习笔记(第3章) 对应Let's-python视频第4集

 
阅读更多

Python基础(chapter3)

1 setence and syntax语句和语法

1.1 #为注释符号

1.2 /n是标准行分隔符, 通常一个语句一行

1.3 反斜线/表示下一行继续, 用来将单条语句放入多行尽量使用括号代替

1.4 分号;表示将两个语句连接在一行中不提倡

1.5 冒号:表示将代码块的头和体分开

1.6 语句(代码块)用缩进块方式体现: 同一个代码组的代码必须严格左对齐..由于不同的editor制表符宽度不一, 为了使代码跨平台, 推荐使用4个空格缩进

1.7 不同缩进深度分隔不同的代码块

1.8 python文件以模块的形式组织: 模块以磁盘文件的形式存在, 不应该让某个模块充斥的太大

2 赋值

2.1 赋值语句没有返回值, 但可以使用链式赋值

2.2 python2.0开始支持增量赋值(算符和等号连接赋值), 但是python不支持++, --

2.3 赋值操作中, 可变对象会被直接修改(引用位置值的修改), 不可变对象则被重新赋予新的对象(引用修改)

2.4 多元赋值: a, b, c = 1, 2, ‘string’, 建议使用tuple的方式进行多元赋值: (a, b, c) = (1, 2, ‘string’)

3 swap操作: x, y = y, x

4 标识符

4.1 大小写敏感

4.2 python的关键字列表和iskeyword()函数在keyword模块, 方便查阅

4.3 内建: built-in可以看作是系统保留字….对于一些内建函数需要覆盖(重定义, 替换)…built-in__builtins__模块的成员, 该模块由解释器自动导入

4.4 python不支持重载

4.5 下划线: 作为变量前缀和后缀指定特殊变量

4.5.1 _xxx: 不用’from module import*’导入

4.5.2 __xxx__: 系统定义名字

4.5.3 _xxx: 类中的私有变量名

6 模块组织

# 起始行

# 模块文档

# 模块导入

# 变量定义

# 类定义

# 函数定义

# 主程序

7 __name__用于指示模块应该如何被加载, 如果值是”__main__”说明是主模块, 如果是模块名, 说明是被导入的

8 主模块测试代码

def main():

# business process

if(__name__ == ‘__main__’)

main()

9 内存管理

9.1 基本

9.1.1 弱类型 动态类型

9.1.2 programmer不关心内存管理

9.1.3 变量并会被回收

9.1.4 del语句能够直接释放资源

9.2 变量未初始化不允许使用

9.3 引用计数: 对于一个内存堆中的对象, 有多少个指针引用它..引用计数就是多少, 引用计数为0, 该对象可以被垃圾回收器回收

9.3.1 增加

9.3.1.1 对象创建

9.3.1.2 别名创建(引用赋值)

9.3.1.3 参数传递(引用传值)

9.3.1.4 被容器引用

9.3.2 减少

9.3.2.1 引用生命周期结束

9.3.2.2 对象别名被显示销毁 del y

9.3.2.3 对象别名被赋予其他引用

9.3.2.4 窗口对象本身被销毁

9.3.3 del

9.3.3.1 从现在的名字空间中删除一个别名

9.3.3.2 对象的引用计数减一

9.4 垃圾回收: 有对象引用计数为0, 对象被显示告知需要销毁, 有内存消耗大户存在导致系统压力较大时, 垃圾回收机制运行, 清理需要回收的内存区域垃圾回收机制还有一个循环垃圾回收器, 确保释放循环引用对象(a引用b, b引用a, 导致其引用计数永远不为0)

10 将引入的其他模块中常用的变量重新赋予一个本地别名(ls = os.linesep)不仅可以避免冗长的变量名, 又可以提高加载速度(因为现在是本地变量了)

11 重要的其他模块

11.1 debugger: pdb允许设置断点, 逐行调试, 检查堆栈, 还支持事后调试

11.2 logger: logging分紧急, 错误, 警告, 信息, 调试五级日志

11.3 profilers: 性能测试器

11.3.1 profile: python编写, 测试函数执行时间, 每次脚本执行总时间.

11.3.2 hotshot: python2.2, c编写, 解决了性能测试过载问题, 但需要更多时间生成结果, python2.5修正了hotshot的时间计量bug

cProfile: python2.5, c编写, 需要较长时间从日志文件载入分析结果, 不支持子函数状态细节, 某些结果不准

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics