一、常用内建属性
常用专有属性 | 说明 | 触发方式 |
| 构造初始化函数 | 创建实例后,赋值时使用,在 |
| 生成实例所需属性 | 创建实例时 |
| 实例所在的类 | 实例. |
| 实例字符串表示,可读性 | print(类实例),如没实现,使用repr结果 |
| 实例字符串表示,准确性 | 类实例 回车 或者 print(repr(类实例)) |
| 析构 | del删除实例 |
| 实例自定义属性 |
|
| 类文档,子类不继承 | help(类或实例) |
| 属性访问拦截器 | 访问实例属性时 |
| 类的所有父类构成元素 |
|
1.属性拦截器的使用
class Itcast(object):
def __init__(self,subject1):
self.subject1 = subject1
self.subject2 = 'cpp'
#属性访问时拦截器,打log
def __getattribute__(self,obj):
if obj == 'subject1':
print('log subject1')
return 'redirect python'
else: #测试时注释掉这2行,将找不到subject2
return object.__getattribute__(self,obj)
def show(self):
print('this is Itcast')
s = Itcast("python")
print(s.subject1)
print(s.subject2)
#结果
log subject1
redirect python
cpp
属性拦截器的使用
二、集合
1.集合求交集:a&b
2.集合求并集:a|b
3.集合求差集:a-b
4.集合求对称差集:a^b
三、常用模块
1.常用标准库
标准库 | 说明 |
builtins | 内建函数默认加载 |
os | 操作系统接口 |
sys | Python自身的运行环境 |
functools | 常用的工具 |
json | 编码和解码 JSON 对象 |
logging | 记录日志,调试 |
multiprocessing | 多进程 |
threading | 多线程 |
copy | 拷贝 |
time | 时间 |
datetime | 日期和时间 |
calendar | 日历 |
hashlib | 加密算法 |
random | 生成随机数 |
re | 字符串正则匹配 |
socket | 标准的 BSD Sockets API |
shutil | 文件和目录管理 |
glob | 基于文件通配符搜索 |
四、调试
命令 | 简写命令 | 作用 |
break | b | 设置断点 |
continue | c | 继续执行程序 |
list | l | 查看当前行的代码段 |
step | s | 进入函数 |
return | r | 执行代码直到从当前函数返回 |
quit | q | 中止并退出 |
next | n | 执行下一行 |
print | p | 打印变量的值 |
help | h | 帮助 |
args | a | 查看传入参数 |
| 回车 | 重复上一条命令 |
break | b | 显示所有断点 |
break lineno | b lineno | 在指定行设置断点 |
break file:lineno | b file:lineno | 在指定文件的行设置断点 |
clear num | | 删除指定断点 |
bt | | 查看函数调用栈帧 |
1.第一种方式:在运行程序的时候输入python3 -m pdb test1.py,按下l(list)查看程序当前运行到第几行,按下n(next)可以让程序运行下一步,按下c(continue)可以让程序正常执行,b(break) 行号设置断点
2.第二种方式:import pdb pdb.run('函数的调用test(11, 22)'),按s回车执行调用
3.第三种方式:程序中埋点,import pdb pdb.set_trace 程序在执行到后面的代码时会启动调试模式