zoukankan      html  css  js  c++  java
  • python高级1-4章

    python高级编程和异步io并发编程

    第一章

    1. 导学
      • python进阶方法
        • 阅读(库和框架)源码
        • 优化代码
      • 目标:python高级和并发编程
      • 方法:功能---原理---应用案例
      • 课程安排:元类、多线程、多进程、异步IO、asyncio---重要
    2. 开发环境配置

    第二章(一切皆对象)

    1. python中一切皆对象

      • 动态语言和静态语言的区别

        • python面向对象更加彻底
      • 函数、类(模板对象)都是对象,属于python的一等公民

        • 可以赋值给一个变量
        • 可以添加到集合对象中
        • 可以作为参数传递给函数
        • 可以当做函数的返回值(装饰器)
    2. type、object和class之间的关系

      • 通过它们理解python中一切皆对象

      • 一切都是继承自object

      • 可以通过tpye()生成类对象

        • type--int--1即:type--class(int、str等)--obj

        • # 查看一个类的基类
          	类.__bases__
          
      • object是最顶层的基类,它没有基类

      • type本身是一个类,同时也是一个对象

    3. python中的内置对象类型

      • 对象的三个特征:
        • 身份---id,可以理解为内存中的指针,查看ID----id(obj)
        • 类型,python中不用指定类型
        • 值---value,1使用int类型封装,使用a变量指向1对象
      • None对象(全局只有一个)
      • 数值: int/float
      • 迭代类型
      • 序列类型:list、range、tuple、str、array(数组)
      • 映射类型:dict
      • 集合:set(效率高)、forzenset
      • 上下文管理类型:with语句
      • 其他:模块类型、class和实例、函数类型、方法类型、代码类型、object类型、type类型、ellipsis类型、notimplemented类型
    4. 小结

      • python过于灵活,没有静态语言的编译过程,不够严谨。
      • 可以串联python知识点。

    第三章(魔法函数)

    1. 什么事魔法函数

      • # 定义此魔法函数,对象就变成可迭代对象
        __getitem__(self,item)
        
    2. python中的数据模型,以及数据模型对python的影响

      • 魔法方法的调用时隐式的,会自己调用,不用主动调用
      • len(obj),会首先调用类中的__len__,如果没有定义,就是调用__getitem__
    3. python魔法函数(贯穿于整个python学习)

      • 非数学运算

        • # print(对象)会调用__str__
          # 直接调用对象时,会调用__repr__
          
      • jupyter简单的打开方法:

        pip3 install -i https://pypi.douban.com/simple notebook
        
        ipython notebook
        
    4. len函数的特殊性

      • 如果统计list、set、dict等内置类型,速度会非常快,这些类型是c语言写出来的,不会去遍历,会直接读取长度。
    5. 小结

      • 认识魔法函数、名称都是固定的,隐式调用

    第四章(深入对象和类)

    1. 鸭子类型和多态

      • 所有的类或对象都实现了一个共同的方法,方法名要一样,这些类可以归为同一种类型,这样就可以同时调用这些类的方法。
      • extend(),接受的是可迭代类型,只要可迭代就行。
    2. 抽象基类

      • 抽象基类不能实例化
      • 不建议使用抽象基类,建议使用 isinstance
    3. isinstance和type的区别

      • type 无法找出继承关系
    4. 类变量和对象变量

      • 类变量和对象变量是独立的
    5. 类属性和实例属性以及查找顺序

      • 由下而上

      • 属性查找顺序按照C3算法

      • 如何查看属性查找顺序

        # 查看查找顺序
        print(A.__mro__)
        
    6. 静态方法、类方法、对象方法以及参数

      • 使用最多的就是静态方法
      • 静态方法,可以预处理传入的数据,可以在其中创建实例对象,并返回。缺点:更改类名时需要更改静态方法返回对象
      • 类方法,可以预处理传入的数据,优势:不用担心类名更改。
    7. 数据封装和私有属性

      • 实例的私有属性不允许外部访问,允许实例方法访问

      • 非要访问:实例对象.类名__私有属性

        print(user._User__birthday)

    8. python对象的自省机制

      • 自省是通过一定的机制查询到对象的内部结构

        # 通过__dict__查询属性,返回的是字典,如果没有就报错
        print(user.__dict__)
        # 赋值
        user.__dict__['name']='tom' 
        # 通过dir()查看对象的属性,返回键的列表,没有值
        
    9. super函数

      • super执行顺序不是调用父类,而是按MRO算法调用
      • print(obj.__mro__)可以查看obj对象的父类调用顺序。两种可能:广度优先,深度优先。
  • 相关阅读:
    pydoc (Development Tools) – Python 中文开发手册
    CSS :out-of-range 选择器
    wcschr (Strings) – C 中文开发手册
    gl (SGI IRIX) – Python 中文开发手册
    排版 | Typography (CSS) – Bootstrap 3 中文开发手册
    HTML 音频,视频 DOM ended 属性
    ASP.NET Web Forms 教程
    Linux 系统目录结构
    ADO Connection 对象
    JavaWeb 之 HttpServletRequest 类
  • 原文地址:https://www.cnblogs.com/hui-code/p/12130321.html
Copyright © 2011-2022 走看看