![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python
文章平均质量分 61
记录python的学习过程
tensor_zhang
行动是治愈恐惧的良药,而犹豫拖延将不断滋养恐惧
展开
-
python10-协程
1,概念线程:正常的开发语言:多线程可以利用多核。cpython解释器下的多个线程不能利用多核:这本质上是规避了所有IO操作的单线程。协程:是操作系统不可见的。协程本质就是一条线程,多个任务==在一条线程上来回切换==(因)以规避IO操作(果),以达到将一条线程中的IO操作降到最低的目的。进程、线程、协程之间的对比:操作数据隔离/共享数据是否安全操作级别开销多核进程数据隔离数据不安全操作系统级别(dis.dis)非常大能利用多核原创 2021-08-15 13:46:15 · 92 阅读 · 0 评论 -
python9-多线程
文章目录1,概念2,threading模块3,线程锁(互斥锁)4,递归锁和死锁现象5,队列(queue:Queue/LifoQueue/PriorityQueue)6,池 concurrent.futures1,概念线程:能被操作系统调度(被CPU执行)的最小单位。(进程负责圈资源,线程负责执行)同一个进程中的多个线程能够同时被多个CPU执行。(线程也可以利用多核)同一个进程的多个线程是数据共享的。(必然存在数据不安全)(进程与线程的区别之一:进程是数据隔离的,线程是数据共享的)线程的开启、原创 2021-08-15 13:45:37 · 115 阅读 · 0 评论 -
python8-多进程
1,概念操作系统分类多道批处理系统遇到I/O就切换可以提高CPU的利用率进程之间数据隔离(内存隔离)时空复用:在同一个时间点上,多个程序同时执行(时间复用,有的在做CPU操作,有的在做I/O操作);一块内存中存储了多个进程的数据(空间复用,但进程之间的数据是隔离的)分时操作系统时间分片时间片的轮转实时操作系统进程基本概念运行中的程序就是一个进程需要占用资源,受操作系统调度每个进程都有对应的pid,是进程的唯一标识,在其生命周期内不变进程是计算机中原创 2021-08-15 13:36:00 · 160 阅读 · 0 评论 -
python7-类的装饰器(property, classmethod, staticmethod)
1,property修饰方法,使得方法执行并获取执行结果从而使得方法可以如同属性被调用(被装饰的方法不可以有参数)'''一个例子'''import timeclass Person(object): def __init__(self, name, birth): self.name = name self.__birth = birth @property def age(self): return time.localtim原创 2021-08-15 13:34:54 · 155 阅读 · 0 评论 -
python6-网络编程
1,七层网络协议应表会传网数物:应用层、表示层、会话层: (这三层又可以合并为应用层,这样就是五层网络协议【osi五层协议】) python ‘你好’.encoding(‘utf-8’)传输层: 预备如何传输、使用的端口 (port,tcp,udp); 四层路由器、四层交换机网络层: ip(ipv4 ipv6); 路由器、三层交换机数据链路层: mac(mac, arp协议:可以通过ip找到mac); 二层交换机、网卡(单播、广播、组播,arp用到单播原创 2021-08-15 13:33:37 · 157 阅读 · 0 评论 -
python5-新式类广度优先多继承的继承顺序
底层算法为C3算法,可以通过 类名.mro()进行查看。而super()就是通过mro()的顺序找到当前类的下一个类的。(在单继承中,super就是找父类)'''一个例子'''class A: def func(self): print('in A')class B(A): def func(self): super().func() print('in B')class C(A): def func(self): super().func()原创 2021-08-15 13:32:55 · 101 阅读 · 0 评论 -
python4-抽象类
##1,为什么要用抽象类?为了规范子类必须实现与父类同名的方法(接口统一)##2,实现方法不用模块,实例化后的调用过程报错'''模板'''class Father: def module(self, *args, **kwargs): raise NotImplementedError('提示信息')'''一个例子'''class Child(Father): passchild = Child()child.module()使用模块,实例化过程报错'原创 2021-08-14 17:22:57 · 88 阅读 · 0 评论 -
python3-递归
def func(count): count += 1 print('>'*count, count) if count == 5: return count res = func(count) print('>'*count, res) return resfunc(0)可以想象成平行的平面,函数调用向内层平面深入,return向外层平面返回(默认返回None),count就只是在平面内流动。#斐波那契生成器def fib(n):原创 2021-08-14 17:22:25 · 75 阅读 · 0 评论 -
python2-装饰器模板
1,不带参数的装饰器def decorator(f) #f是形参要传入函数的形参 def inner(*args, **kwargs) #与要装饰的函数相同的形参 '''扩展功能''' innerVar = f(*args, **kwargs) #func是待装饰的参数 '''扩展功能''' return innerVar #返回func的返回值 return inner@decoratordef func(*args, **kwargs): res原创 2021-08-14 17:21:54 · 138 阅读 · 0 评论 -
python0-常规操作
文章目录1,固定小数点后的位数2,文件校验器3,进制转换4,运行脚本后进入交互模式5,虚拟环境设置6,控制台输出带颜色的文字方法7,python源码打包及加密(PyInstaller、Nuitka;cython、jmpy3、docker;PyArmor-收费;法律约束条款;靠服务收费而非产品收费;BeeWare)8,反射(由字符串获取与之同名的对象的值,getattr,globals())9,Python图像库PIL的类Image及其方法10,Python与C混编11,cupy-一个由 CUDA 加速的 N原创 2021-08-14 17:21:18 · 1565 阅读 · 0 评论 -
python1-python3中sort函数key如何对两个参数做对比
python3之后不支持cmp,所用key函数并不直接比较任意两个原始元素,而是通过key函数把那些元素转换成一个个新的可比较对象,也就是元素的key,然后用元素的key代替元素去参与比较。如果原始元素本来就是可比较对象,比如数字、字符串,那么不考虑性能优化可以直接sort(key=lambda e: e)。不过这种基于key函数的设计倾向于每个元素的大小有个绝对标准,但有时却会出现单个元素并没有一个绝对的大小的情况,此时可以使用 functools.cmp_to_key构建基于多个元素的比较函数。..原创 2021-08-14 17:20:23 · 601 阅读 · 0 评论