ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

day34 面向对象编程和网络编程复习

2019-09-10 16:50:41  阅读:262  来源: 互联网

标签:__ 复习 对象 day34 mro 面向对象编程 方法 self 属性


面向对象

类与对象
-__init__

 class Person:
    school='xxx'
    def __init__(self):  #对象初始化方法,对象的绑定方法,对象来调用会把对象传过来        
        self.name='xxx'

p=Person()   #类实例化产生对象会调用__init__

print(p.school)
Person.school='uuuu'
p.school='yy'

属性查找:包括数据属性,包括方法
-数据属性:对象中找----》类中----》父类(按照mro查找)--》obj py2中没有mor这个东西
-方法查找:对象的绑定方法---》父类中按照mro列表查找---》obj

绑定方法:
-定义在类内部,没有被任何装饰器装饰的函数,就是方法
-给对象来用 对象.方法() 默认把对象自身传过去 ******特殊之处
-类来调用就是普通函数,有几个值就传几个值

对象之间的交互
-把一个对象传到另一个对象中,操作这个对象
-人狗大战

三大特性:继承封装多态
-继承:
-在类名后的括号中写要继承的类,用逗号分隔
-py中支持多继承(属性查找顺序)
-新式类和经典类
-继承了object的类都叫新式类(py3中都是新式类)
-py2中才有新式类,经典类之说
-菱形问题的查找:
-广度优先:新式类
-深度优先:经典类
-mro列表
-super() 特殊对象,调用父类的方法和属性(严格按照mro列表找的)
-self和super的区别:self一定是从根上找,super()从当前位置按照mro列表找
-类名.方法() 就是个普通函数,这个就不按照mro列表找了,指名道姓的来用
-派生:字类多出来的属性,方法
-多态和多态性
-一个事务多种形态
-多态性:执行同一个事物的同一个方法,表现出来的结果是不一样的
-两种限制子类必须实现什么方法的方式
-一个abc模块
-raise抛异常
-鸭子类型:走路像鸭子,你就是鸭子
-len() 调用对象.__len__()
-封装:
-把属性和方法隐藏
-以__开头,就会隐藏
-并没有实际隐藏(做了变形)
-隐藏属性:保证数据安全
-隐藏方法:隔离复杂度
-property 装饰器 包装成数据属性
-其他两个装饰器
-classmethod:类的绑定方法:可以类来调用会自动把类传入(对象也可以调用)
-staticmethod:静态方法,谁都可以调用,不会自动传参数
-元类:
-__call__
-__new__
-__getattr__
-__setattr__
-__delattr__
_type和object
-反射(通过字符串去获取,删除,修改,对象的属性或方法)
-hasattr
-getattr
-setattr
-delattr
-isinstance和issubclass

super()

网络编程

网络是什么:链接介质+协议
协议:osi7层
5层协议:
-物理层 01000101010
-数据链路层:做分组:数据报/数据帧 mac
-网络层:ip 通过ip得到mac地址---arp协议 mac地址学习
-传输层:tcp/udp 三次握手四次挥手,可靠传输
-应用层:写的程序都是应用层,基于socket(基于网络和传输抽象出来的)/http协议/邮件

socket编写tcp的客户端和服务端:
-传输文件:自己定制了协议
-粘包问题终极解决方案
-struct模块先把头的长度包成四个字节,发送四个字节
-发送头
-发送内容
-接收端:
-接收4个字节,解除头部长度
-接收头部,取出数据长度
-接收数据长度

socket编写udp的客户端和服务端
-不需要建立连接,传输不可靠,数据报协议(自己有头)

socketserver写支持并发的服务端

# with 上下文管理器
with open('a.avi','rb') as f:
    for line in f:
        print(line)

class Open():
    def __enter__(self):
        print('xxxxx')
        pass
    def __exit__(self, exc_type, exc_val, exc_tb):
        print('yyyyy')
        pass

with Open() as f:
    # 代码
    f.name='xxx'

标签:__,复习,对象,day34,mro,面向对象编程,方法,self,属性
来源: https://www.cnblogs.com/17vv/p/11498385.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有