随笔分类 - python基础
摘要:死锁和递归锁 1.死锁和递归锁 所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程 #科学家吃面问题 from threading import
阅读全文
摘要:进程锁Queue队列 进程锁 from multiprocessing import Process,Lock import os,time def task(i,lock): lock.acquire()#上锁 print('进程进来了序号为:%s id号为:%s'%(i,os.getpid())
阅读全文
摘要:网络编程 1.进程概念 1.1什么是程序 程序是永久的,做事的过程,没有生命周期 死的,永久存放在那 1.2什么是进程 process 进程是是系统进行资源分配和调度的基本单位,是操作系统结构的基础,进程是线程的容器,进程里面可以开线程,进程可以说是一个过程,是动态的,他不是干活的,真正干活的是线程
阅读全文
摘要:网络编程 cs 架构和bs架构 C/S分为; Client:客户端, Server:服务端 #植物大战僵尸,qq B/S分为 Browser:浏览器, Server:服务器 #淘宝taobao.com,京东 jd.com #本质B/S也是C/s架构 OSI七层协议 七层划分为:物理层,数据链路层,网
阅读全文
摘要:组合 mixins机制 内置函数 反射 异常 组合 # 解决类与类之间代码冗余问题: 1. 继承 2. 组合 属性的值指向另一个类实例化的对象 组合:一个对象拥有一个属性, 属性的值必须是另外一个对象 继承满足的是:什么是什么的关系 # is-a 人是动物,猪是动物 狗是动物 组合满足的是:什么有什
阅读全文
摘要:面向对象三大特征 封装 class Student(): school = 'SH' name = 'egon' # 当调用类的时候自动触发的函数 def __init__(self, name, age ,gender): self.name = name self.age = age self.
阅读全文
摘要:day23面向对象小案例 1.案例 """ 题目: 定义一个类,产生一堆对象 要求: 要有一个计数器,记录一共差生了多少个对象 """ class Student(): count = 0 def __init__(self,name,age): self.name=name self.age=ag
阅读全文
摘要:面向对象,面向过程 类与对象 面向过程概念 面向过程核心是过程二字,过程就是先干什么,在干什么,最后干什么 eg: 1. 开大冰箱门 2. 把大象放进去 3. 把门关上 eg1: 流水线生产饮料 优点:复杂的问题简单化,进而流程化 缺点:扩展性差,可维护性差 应用场景:应用在扩展性要求不高的地方,
阅读全文
摘要:day21ATM+购物车 start 开始文件 from core import src if __name__ == '__main__': src.main() 用户视图层 core下的src.py from interface import user from interface import
阅读全文
摘要:ATM+购物车 src主程序 # 主程序 import os import json from conf import settings from common import common # 定义公用类 username登录名字 is_login登录状态 user_data = { 'userna
阅读全文
摘要:18 其他不常用模块 猴子补丁 import json # ujson import ujson def monkey_patch(): json.loads = ujson.loads json.dumps = ujson.dumps monkey_patch() import shelve #
阅读全文
摘要:常用模块的使用 1. time模块 import time *一*#时间戳--》结构化时间--》格式化的字符串时间 res1=time.localtime(654126574) print(res1 ) #res1 time.struct_time(tm_year=1990, tm_mon=9, t
阅读全文
摘要:循环导入问题 模块搜索路径的优先级 软件开发目录规范 包的使用 ATM简单部署 1.循环导入问题 循环导入问题指的是在一个模块加载/导入的过程中导入另外一个模块,而在另外一个模块中又返回来导入第一个模块中的名字,由于第一个模块尚未加载完毕,所以引用失败、抛出异常,究其根源就是在python中,同一个
阅读全文
摘要:1. 三元表达式 x=5 y=6 #成立结果 res= 'ok' if x>y else 'no' # 三元指的是 成立返回结果,,条件 不成立返回结果 print(res) #输出结果为:no 2.内置函数 #### 重点 int float str list tuple dict set boo
阅读全文
摘要:添加多个装饰器 函数递归 递归实现二分法,匿名函数 练习自己实现range功能 #定义自己的range def my_range(start,stop,step): #三个参数 初始位置 结束 步长 while start<stop: #开始<结束 执行下面代码 yield start #yield
阅读全文
摘要:装饰器 迭代器 1.装饰器 1.1什么是装饰器 装饰器就是装饰别人的工具,具体是指为被装饰者添加新功能,为一个新函数添加新功能 1.2为何要用装饰器 (开放封闭原则) 为了不修改被装饰者的源代码以及调用方式的前提下,为被装饰着添加新功能 1.3如何实现装饰器 通过这个模板来实现具体看实际情景添加一些
阅读全文
摘要:与*、函数嵌套、对象、作用域、闭包函数 1.args(*)与kwargs(**) 在函数里面调用函数,用args和kwargs def index(a,b,c): print(a,b,c) def wrapper(*args,**kwargs): # args=(1,2,3) kwargs={} i
阅读全文
摘要:函数基础 1. 函数基础 1.1 什么是函数 函数是保存代码的工厂,也可以说是一个保存代码的容器,把具体功能封装到一个函数里面 方便以后调用 1.2为何要用函数 为了减少代码冗余,增加代码可读性 为了便于维护 1.3如何用函数 1.3.1定义函数 语法 定义函数发生的事情 函数的使用原则 先定义.后
阅读全文
摘要:文件打开模式 读写方式,指针移动 1.文件打开模式 分为1.控制文件读写内容 : t:(默认)以字符串为单位,必须指定encoding参数 操作文本的 b:无论读写都是以bytes为单位也就是二进制,不需要指定encoding参数, 操作图片视频等也可以操作文本,@但是读取操作需要指定decode,
阅读全文
摘要:字符编码和with 和文件打开模式 1.字符编码 1.1 什么是字符编码? 人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等 1.2 字符编码表的发展史 (了解) 一、一家独大 二 、诸侯割据、天下大乱 三、分久必合 逐渐统一 1.3 编码与解码 由字符转换成内存中的
阅读全文