zoukankan      html  css  js  c++  java
  • 面向对象 下

    1、

    要点分析:
            a、封装,对象中嵌套对象
            b、pickle,load
                实例:s1.py (dump)  s2.py(load)  类不存在(load会报错)  切记:一定要先导入相关类
                    class Foo:
                        def __init__(self,name)
    作业分析

    2、三大特性:

        封装、继承、多态(补充):多种形态 多种类型

    def func(arg):  (arg的形式 支持字典 字符串 列表 元组等)这就是多态
                    print(arg)
                    func(1)
                    func('alex')
                    func([11,22,33])
                c#/Java
                    def func(int arg):
                    #def func(A arg):  利用类的继承关系实现多态 arg参数必须是A类或者A的子类类型
                        print(arg)
                    func(123)
                    func('alex') #报错
    多态

      

    3、面向对象中  类成员

    1、字段:
            静态字段:静态字段在代码加载时已经创建
            普通字段:  
            s3.py   中self.name为字段  保存在对象中 每个对象存在一份 (普通/动态 字段) 
                      CC为字段   保存在类中  所有对象共用一份(静态字段)  内存占用率低
                      4.jpg
                      实例:s3.py
    2、方法:
            所有方法属于类
            a、普通方法:  至少一个self  通过对象执行
                s3.py  (普通方法)show方法(方法属于类)
            b、静态方法:  任意参数  类执行
                对象调用执行  s3.py  (普通方法)show方法(方法属于类)
                                普通方法 变为(静态方法) F1方法: 静态方法由类调用执行
                                    1、去掉self
                                    2、方法上面加@staticmethod
            c、类方法: 至少有一个cls 由类执行
                普通方法 变为(类方法) F2方法: 类方法由类调用执行
                                    1、去掉self
                                    2、方法上面加@classmethod
                                    3、必须有一个cls参数(class缩写)
                                       cls参数自行传值无需赋值    
     3、属性
            不伦不类的东西
            具有方法的写作形式,具有字段的访问形式
               s3.py   f3方法  Pager类(分页)
                       all_pager  上面加装饰器@property
    类成员

      

      

      属性:

        

        

        

        

    4、成员修饰符  foo类

      私有:
        只能类自己本身成员内部可以访问(继承都不可以)

        
      共有:
        都可以访问
      特殊情况:不到万不得已不使用在外部强制访问私有成员 _类名__xxx (xxx代表字段或者方法或属性)

    5、特殊成员  (s5.py  Foo类)

      __del__ 析构方法(用不到)
      __init__ 构造方法
      __doc__ 注释
      __module__ 模块位置
      __class__ 类
      __call__ 对象后面括号执行__call__方法

      __str__ 类中含有__str__的话 本该返回对象的会返回__str__的值(画面友好) s5.py foo类

          
      __dict__ 获取对象中封装的数据(特别特别特别重要) 直接访问 对象.__dict__
      __getitem__ 支持字典的中括号 s5.py
              切片也使用__setitem__方法

          

      __setitem__ 支持字典的中括号 s5.py
              切片也使用__setitem__方法
      __delitem__ 支持字典的中括号 s5.py
             切片也使用__setitem__方法

          
      __iter__ 循坏对象就执行__iter__ (迭代器) s5.py

        

    6、面向对象其他

      isinnstance 对象是否为类(或其父类)的实例 s6.py
      issubclass 前者是否为后者的子类

        
      继承: 2.7
        super() #主动执行父类的f1方法

          
      应用:
        字典:有序字典

          
        自定义类型,对字典进行补充(有序字典)

    8、单例模式(设计模式)

      单(个实)例模式:用来创建单个实例

        

        

  • 相关阅读:
    使goroutine同步的方法总结
    PHP类自动加载技术
    swoole架构分析
    网站用户行为分析——HBase的安装与配置
    Java基础——异常处理
    大数据技术原理与应用——分布式文件系统HDFS
    大数据技术原理与应用——大数据处理架构Hadoop
    廖老师的Python教程——安装Python
    廖老师的Python教程——Python简介
    大数据技术原理与应用——大数据概述
  • 原文地址:https://www.cnblogs.com/zhaozhenguo666/p/5627219.html
Copyright © 2011-2022 走看看