• 面向对象和网络编程补充


    面向对象

    1、类与对象

     class Person:
          school='xxx'
          def __init__(self):  #对象初始化方法,对象的绑定方法,对象来调用会把对象传过来
              self.name='xxx'
     
      p=Person()   #类实例化产生对象会调用__init__
     
      print(p.school)
      Person.school='uuuu'
      p.school='yy'
     

    2、属性查找

    属性查找:包括数据属性,包括方法

    数据属性:对象中找----》类中----》父类(按照mro查找)--》obj

    py2中没有mor这个东西

    方法查找:对象的绑定方法---》父类中按照mro列表查找---》obj

    3、绑定方法

    定义在类内部,没有被任何装饰器装饰的函数,就是方法

    给对象来用 对象.方法() 默认把对象自身传过去 **特殊之处

    类来调用就是普通函数,有几个值就传几个值

    对象交互:把一个对象传到另一个对象中,操作这个对象、

    面向对象的三大特征:继承,封装,多态

    继承:

    -在类名后的括号中写要继承的类,用逗号分隔

    -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

    网络编程

    网络是什么:链接介质+协议

    协议:osi7层

    5层协议:

    -物理层 01,电信号

    -数据链路层:做分组:数据报/数据帧 mac

    -网络层:ip 通过ip得到mac地址---arp协议 mac地址学习

    -传输层:tcp/udp 三次握手四次挥手,可靠传输 -应用层:写的程序都是应用层,基于socket(基于网络和传输抽象出来的)/http协议/邮件

    socket编写tcp的客户端和服务端:

    -传输文件:自己定制了协议

    -粘包问题终极解决方案

    -struct模块先把头的长度包成四个字节,发送四个字节

    -发送头

    -发送内容

    -接收端:

    -接收4个字节,解除头部长度

    -接收头部,取出数据长度

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

     

  • 相关阅读:
    css-box-shadowing
    css- :before :after
    css: line-height 与box-sizing
    金蝶数据库后台追踪
    钉钉审批开发,空白内容
    asp.net c#语言实现钉钉鉴权验证
    钉钉事件回调c#测试完成
    钉钉C#发起审批实例demo
    asp.net c#语言实现钉钉鉴权验证
    图片码
  • 原文地址:https://www.cnblogs.com/zfb123-/p/11503965.html
Copyright © 2020-2023  润新知