
Python-3:面向对象&网路编程基础
初始化方法__init__?和?析构方法__del__
装饰器
绑定方法和非绑定方法
继承和派生
属性的查找顺序(obj.name)
多态和多态性
组合
抽象类的特性和作用
反射
内置方法:双下划线
元类(选学)
socket
粘包
异常处理、主动触发异常
raise、TypeErr
想我憨憨的一生
这个作者很懒,什么都没留下…
展开
-
Python-3 基于udp协议的套接字
'''服务端'''from socket import *server = socket(AF_INET, SOCK_DGRAM)server.bind(('127.0.0.1', 8080))while True: data, client_addr = server.recvfrom(1024) print(data) server.sendto(data.upper(), client_addr)server.close()'''客户端'''fro原创 2021-02-01 22:55:09 · 86 阅读 · 0 评论 -
Python-3 文件传输
文件传输功能(简单版本)'''服务端'''import jsonimport osimport socketimport structshare_dir = r'F:\winnie\socket\07_文件传输\server\share'phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)phone.bin.原创 2021-02-01 22:13:57 · 386 阅读 · 0 评论 -
Python-3 粘包
什么是粘包?回答这个问题首先要先解释一下TCP、UDP的工作原理TCP:(transport control protocol,传输控制协议)流式协议。在socket中TCP协议是按照字节数进行数据的收发,数据的发送方发出的数据往往接收方不知道数据到底长度是多长,而TCP协议由于本身为了提高传输的效率,发送方往往需要收集到足够的数据才会进行发送。使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制.原创 2021-02-01 20:18:44 · 154 阅读 · 0 评论 -
Python-3 网络编程
简单的套接字通讯'''服务端'''import socket# 1、买手机phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、绑定手机卡phone.bind(('127.0.0.1', 8080))# 3、开机phone.listen(5)# 4、等电话链接print('starting======')conn, client = phone.accept() # 拿到的是元祖# 5、收、发消息.原创 2021-01-31 19:00:06 · 84 阅读 · 0 评论 -
Python-3 Socket
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。...原创 2021-01-19 17:40:39 · 90 阅读 · 0 评论 -
python-3 内置方法
__repe__和__str__的区别原创 2021-01-18 19:43:08 · 131 阅读 · 1 评论 -
Python-3 抽象类的特性和作用
抽象类的特征:抽象类不能实例化使用抽象类中可以存在抽象方法,也可以存在正常的方法抽象类中可以添加成员属性抽象类的使用方法就是被其他类继承抽象类的作用:制定开发程序规范协同程序开发,加速开发效率使用抽象类:import abc# 把类变成抽象类class 类名(metaclass=abc.ABCMeta)# 把对象方法变成抽象对象方法@abc.abstractmethod方法体必须要pass# 把类方法变成抽象类方法@abc.abstractclassmeth原创 2021-01-18 13:50:26 · 906 阅读 · 0 评论 -
Python-3 组合
废话不多说,直接上代码class People: school = 'liffycity' def __init__(self, name, age, sex): self.name = name self.age = age self.sex = sexclass Teacher(People): def __init__(self, name, age, sex, level, salary): super原创 2021-01-18 11:29:46 · 128 阅读 · 0 评论 -
Python-3 多态与多态性
多态:同一事物的多种形态多态性:指的是可以在不考虑对象的类型的情况下而直接使用对象import abcclass Animal(metaclass=abc.ABCMeta): # 同一事物:动物 @abc.abstractmethod def talk(self): passclass People(Animal): # 动物的形态之一:人 def talk(self): print('say hello')class Dog原创 2021-01-17 22:09:10 · 291 阅读 · 0 评论 -
Python-3 属性查找顺序
在python2中-》经典类:没有继承object的类,以及它的子类都称之为经典类在python2中-》新式类:继承object的类,以及它的子类都称之为新式类在python3中-》新式类:一个类没有继承object类,默认就继承object在单继承中,新式类和经典类的查询顺序一样在多继承中,新式类查询遵循广度优先;经典类查询遵循深度优先多继承的新式类:广度优先多继承的经典类:深度优先(py3无法测试,需要py2)class A: def test(self): pri原创 2021-01-17 21:42:30 · 187 阅读 · 1 评论 -
Python-3 继承和派生
class ParentClass1: passclass ParentClass2: passclass SubClass1(ParentClass1): # 单继承 passclass SubClass2(ParentClass1,ParentClass2): # 多继承 pass# 查看继承print(SubClass1.__bases__)print(SubClass2.__bases__)结果:(<class '__main__.Pa原创 2021-01-17 18:34:18 · 87 阅读 · 0 评论 -
Python-3 绑定方法与非绑定方法
一、绑定方法:绑定给谁,就应该由谁来调用,谁来调用就会把调用者当作第一个参数自动传入。绑定到对象的方法:在类内定义的没有被任何装饰器修饰的。绑定到类的方法:在类内定义的被装饰器classmethod修饰的方法。二、非绑定方法:没有自动传值这么一说了,就类中定义的一个普通工具,对象和类都可以使用。非绑定方法:不与类或者对象绑定。对象方法:不需要装饰器;需要绑定方法。类方法:需要装饰器classmethod,需要绑定方法。静态方法:需要装饰器staticmethod,不需要绑定方法。示例:cl原创 2021-01-17 18:15:33 · 175 阅读 · 0 评论 -
Python-3 property的使用
@property 装饰过后的方法不再是可调用的对象,可以看做数据属性直接访问。成人的BMI数值:过轻:低于18.5正常:18.5-23.9过重:24-27肥胖:28-32非常肥胖, 高于32体质指数(BMI)=体重(kg)÷身高^2(m)EX:70kg÷(1.75×1.75)=22.86class People: def __init__(self, name, weight, height): self.name = name s原创 2021-01-16 18:47:03 · 115 阅读 · 0 评论 -
Python-3 初始化方法__init__ 和 析构方法__del__
1.init方法是在创建实例化时调用,是实例化的属性2.del方法是在调用实例化对象结束的时候自动删除class Anmial: def __init__(self, name, age): print('初始化方法') def __del__(self): print('实例化对象被删除了')dog = Anmial('波斯狗', 10)print(dog)print('==============')结果:初始化方法<__ma原创 2021-01-16 17:06:19 · 232 阅读 · 0 评论 -
Python-3 反射
通过字符串映射到对象的属性hasattr 判断对象是否有对应的对象(字符串)getattr 获取指定字符串名称的对象属性setattr 为对象设置一个对象delattr 删除指定属性class People: country = 'China' def __init__(self, name, age): self.name = name self.age = age def talk(self): print('%s原创 2021-01-11 21:29:13 · 120 阅读 · 0 评论