Day07 学习笔记
面向对象基础
- 类与实例:使用
class定义;通过构造函数__init__(self, ...)初始化实例属性。 - 类变量与实例变量:
- 类变量在所有实例间共享,如计数
empCount;通过ClassName.var或实例方法内部引用。 - 实例变量绑定在
self上,如self.name、self.salary。
- 类变量在所有实例间共享,如计数
- 常用内置属性:
__doc__文档字符串、__dict__属性字典等。 - 方法调用:通过实例调用实例方法,方法内部可访问类变量与实例变量。
构造与析构
- 构造函数:
__init__在实例化时自动执行,用于设置初始状态。 - 析构函数:
__del__在对象被销毁时触发(由解释器的垃圾回收决定时机),可用于资源清理的演示。 - 引用计数:多个变量指向同一实例时,对象在所有引用释放后才会被回收。
继承与方法重写
- 单继承:
class Child(Parent): ...自动获得父类属性与方法。 - 调用父类构造:在子类
__init__中显式调用父类构造,如Parent.__init__(self, ...)。 - 访问/修改父类属性:通过父类名调用方法或直接访问类属性,如
Parent.setAttr(self, 200)。 - 方法重写:子类定义与父类同名方法以覆盖原实现,按照“就近原则”调用子类实现。
访问控制与私有成员
- 私有变量与方法:以双下划线开头(如
__secretCount、__count)触发名称改写(name mangling),仅在类内部可直接访问。 - 公共类变量:普通名称(如
publicCount)对所有实例与类可见,可在方法内累加。
正则解析与数据入库流程
- 日志字段提取要点:
- 时间:匹配
YYYY-M-D H:M:S模式。 - IP/端口:使用正则查找带键名的片段(如
src=...、sport=...、dst=...、dport=...)。 - 计数类字段:
revd、sent提取为整数。
- 时间:匹配
- 典型实现:按行读取 → 使用正则(含前瞻/后顾)提取字段 → 组织 SQL → 执行插入并提交;异常时回滚;完毕关闭游标与连接。
套接字编程(TCP)
- 服务端:
- 创建套接字:
socket.socket(AF_INET, SOCK_STREAM)。 - 绑定与监听:
bind((host, port)),listen(backlog)。 - 接收连接:循环
accept()返回(conn, addr),使用conn.send(...)发送数据,结束后conn.close()。
- 创建套接字:
- 客户端:
- 创建套接字并连接:
connect((host, port))。 - 接收数据:
recv(bufsize),完成后close()。
- 创建套接字并连接:
Day07 学习笔记
https://blog.pangcy.cn/2018/10/21/后端编程相关/python/python2基础/Day07 学习笔记/