日常迷惑积累
1.元组 单个元素元组的表达方式(1,) 而(1) 数据类型为int ,() 既可以表示元组数据类型 又可以表示数学计算中的括号
2. 开启子进程的操作必须放在 if __name__ == '__main__': 下面 ,开启子线程不需要
# 在windows系统上,开启子进程的操作必须放到if __name__ == '__main__'的子代码中 if __name__ == '__main__': p=Myprocess('egon') p.start() # 只是向操作系统发送了一个开启子进程的信号 print('主')
3. mysql limit 作用 用于 查看表中的前几行,用于客户端分页查询 优化查询效率
4. select * 不能和group by 联用 但是可以用select count(*) from user like '%张' 默认当前表为一个分组
5.类的名称空间在定义时产生,元类,函数的名称空间在调用的时候产生
6.mysql 配置文件设置严格模式
通过配置文件修改: linux找my.cnf文件 window的修改办法是找my.ini sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
7. 索引查询效率比较:根据索引字段要尽可能的小 一般主键索引使用int 要比varchar 查询效率高 mysql int 4个字节 varchar(50) 不定长一个字符一个字节
8. UTF-8:一个汉字 = 3个字节,英文字母 = 一个字节,GBK: 一个汉字 = 2个字节,英文字母 = 一个字节
9. 线程池与没有线程池并发的区别:没有线程池时,会不断的创建和销毁线程,可能会导致内存泄漏
用线程池时,会一次性的创建50个线程,然后循环的使用这50个线程
10. if __name__ =='__main__' : 的作用 判断是否为main函数代码,只执行当前函数的代码,防止被导入的模块也被执行,即函数名(),如print()
11. 继承的两种方式: super().__init__(name,column_type,primary_key,default)
12. 字符串格式化的三种方式:
str.formate() 'name is {name} '.formate(name = 'bigbox') , %s a='I do %s like %s'% ('not','football') f_string : f 'name is {name}'
13. 垃圾回收机制:1.引用计数:当对象的引用计数为0时,内存空间会被回收, 2.标记清除,解决循环引用导致的内存泄漏问题
3.分代回收 :通过分代,存活在局限域,小容量,寿命短的存储对象会被快速回收;存活在全局域,大容量,寿命长的存储对象就较少被回收行为处理干扰。
14. 非转义r:r 'ertret' 把字符串转成二进制b: b'rewtret' \r 把光标移到行首 \n 换行 回车=\r\n