网络编程
摘要:socket介绍 socket(简称 套接字)是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程通信 创建socket import socket socket.socket(Family,Type) 参数说明: Family: 可以选择AF_INET(用于Inte
阅读全文
进程_线程_协程对比
摘要:1. 进程是资源分配的单位2. 线程是操作系统调度的单位3. 协程存在于线程之中,本质上就是一个特定情况下可以切换的特殊的函数。4. 进程切由于资源是独立的,每次切换的资源很大,耗时更长5. 线程的切换涉及到 用户空间和内核空间的切换,需要操作系统调度,而且除了和协程相同基本的 CPU 上下文,还有
阅读全文
并发编程
摘要:并发和并行 并发:指的是任务数多于CPU核数,通过操作系统的各种任务调度算法,实现多个任务“一起”执行 并行:指的是任务数小于CPU核数,即任务真的是一起执行 队列 python的Queue模块中提供了同步的、线程安全的队列类,包含:FIFO(先入先出)队列queue、LIFO(后入先出)队列Lif
阅读全文
内存管理机制
摘要:python中创建的对象时,首先会去申请内存地址,然后对对象进行初始化,所有对象都会维护到一个叫做refchain的双向循环链表中,每个数据都保存如下信息 链表中数据前后数据的指针 数据的类型 数据值 数据的引用计数 数据的长度 引用计数机制 引用计数增加: 对象被创建 对象被别的变量引用 (另外起
阅读全文
多态
摘要:面向对象三大特征: 封装,继承,多态 封装:客观的事物封装成类 继承:python中一个雷可以继承一个类也可以继承多个类 多态:一类书屋有多种形态,一个抽象类有多个子类;不同的子类对象 调用相同的方法,产生不同的执行结果 多态实现的步骤: 1、定义一个父类,实现某个方法 2、定义多个子类,在子类中重
阅读全文
属性自省
摘要:私有属性: 类里面定义的变量叫类属性,分为公有属性和私有属性 私有属性定义: 单下划开头;_attr 在外部可以直接访问 双下划线开头:__attr1 在外部不能直接访问,被改名,所有在外部无法访问(_类名__attr1) __dict__ 类调用__dict__ 属性,返回类属性和方法的字典 实例
阅读全文
魔术方法
摘要:在python中像__init__这类双下划线开头和结尾的方法,统称为魔术方法 1、__init__ :在创建对象的时候,自动调用对 创建的对象 进行初始化设置的 2、__new__:如果要控制类里面对象创建的过程,可以通过自定义new方法去实现 class MyClass(object): def
阅读全文
装饰器
摘要:装饰器的作业:在不更改原功能函数内部代码,并且不改变调用方法的情况下为源代码添加新的功能 1、普通装饰器 装饰器原理:将被装饰的函数当做一个参数传到装饰器中,并且让被装饰的函数名指向装饰器内部的函数,在 装饰器的内部函数中用来接收到的参数再调用被装饰器的函数。 def work(func): #接收
阅读全文
匿名函数、内置函数、闭包函数
摘要:1、匿名函数 格式:lambda 参数:表达式(f返回值) 实际应用:一般用来定义在表达式简单的函数,使用匿名函数可以简化代码,像与map、filter等函数的使用 例子: #普通函数 def func(x): return x*2 #匿名函数 lambda x:x*2#多个参数的匿名函数lambd
阅读全文
可迭代对象、迭代器、生成器
摘要:1、可迭代对象: 能够进行迭代逐一返回其成员项的对象(能够使用for进行循环输出) 可迭代对象的例子包括: 1、所有序列类型 :如 `list`、 `str` 和 `tuple` 【序列:可通过每个值所在位置的编号(称为索引)访问】 2、非序列类型: `dict`、`set`、`文件对象` 3、实现
阅读全文