Python基础知识学习笔记(2)

本文介绍了Python中的赋值语句、变量交换、特殊变量标识符、代码布局及测试方法等内容,并详细解析了Python的引用计数机制及垃圾回收原理。此外,还推荐了几款常用的Python开发工具,包括调试模块pdb、日志模块logging以及性能测试器profile等。

赋值

python中赋值语句不会有返回值

x = 1
y = (x = x + 1) #非法语句

链式赋值

y = x = x + 1

多元赋值,

x, y, z = 1, 2, 'string'      #采用此方式时, 等号两边都是元组
(x, y, z) = (1, 2, 'string')  #等同于此句

变量交换应用

x, y = 1, 2
x, y = y, x

专用下划线标示符

python用下划线作为变量缀和后缀指定特殊变量

_xxx 不用’from module import *’导入
xxx 系统定义的名字
__xxx 类中私有的变量名


代码布局

  1. 起始行 类Unix环境下使用
  2. 模块文档 可通过module.doc来访问
  3. 模块导入
  4. 变量定义
  5. 类定义语句
  6. 函数定义语句
  7. 主程序 无论是被别的模块导入还是作为脚本直接执行, 都会执行这部分代码

name指示模块应如何被加载

如果是被导入, name值为模块名字
如果是被执行, name值为’main
if __name__ == '__main__'
mian() #判断被导入还是执行来决定是否调用main()


在主程序中书写测试代码

模块理论上永远不会被直接直接执行, 因此在这个模块直接执行时进行系统测试. 利用name将测试代码写入main()中,若该模块被当成脚本运行, 就调用这个函数


引用计数

python中内存由解释器管理, 当一个对象被创建时, 就创建了一个引用计数, 当这个对象引用计数变为0时, 它就被垃圾回收

增加引用计数的情况

  • x = 3.14 对象被创建
  • y = x 以另外的别名被创建
  • foobar(x) 作为参数传递给函数
  • myList = [123, x, ‘xyz’] 成为容器的一个对象

引用计数减小的情况

  • 本地引用离开了作用范围, 如一个函数结束, 其中局部变量被释放
  • del y 被显式的销毁
  • x = 123 对象的一个别名被赋值给其它的对象
  • myList.remove(x)对象被从一个窗口中移除
  • del myList 窗口对象本身被销毁

相关模块和开发工具

  • Debugger: pdb 调试模块 pdb 允许你设置(条件)断点,代码逐行执行,检查堆栈。它还支持事后调试
  • Logger: logging 定义了一些函数和类帮助你的程序实现灵活的日志系统, 共有五级日志级别: 紧急, 错误, 警告, 信息和调试
  • Profilers: profile, hotshot, cProfile 性能测试器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值