python面向对象学习第一周

 面向对象的思想
一个具体对象的属性方法,都有各个来源,来源于类,比如消化类,有各种各样的消化模式,人类的只是其中一种
另一种思想方法,类有各种属性方法,人类有很多的属性,一个人应该包括其中的属性,只是值上可能有不同,不同人群也有他们的特征属性和方法
    类是对象的抽象,但是类本身也是对象, 对象是一个类的实例.
类的属性:类变量,对象方法,类方法,静态方法(普通方法)
类变量:
类变量是定义在类中的一个常量,它表示这个类的对象共同拥有的属性
类变量可以为任意类型包括对象类型,类类型(一切皆对象),最好不要是自身的对象和类类型,避免递归
对象属性:类的对象特有的属性,一般在定义一个对象时需要设置它的属性值
第一个方法初始化方法 ___init__
定义一个对象时自动调用的一个方法,一般在这里就设置对象的属性的值, (self.shuxing = XXX) ,这个方法的调用者是这个类的对象,方法里面可以调用后面定义的方法. 对象的属性都是静态的值或对象,不包括方法
对象方法:
表示对象行为的方法
要用这个类的对象来调用,如果是类要额外传入一个对象来调用,调用自身的函数时要注意递归, 这里面可以调用和修改属性
类方法:
表示类对象的行为的方法
要用这个类来调用的方法 ,类的对象也可以调用(因为它可以通过对象来找到它的类)
静态方法:
一般不表示类或对象行为, 单纯计算,获得计算的常量的值
需要使用类或者对象来调用,
定义一个前面已有的方法,会调用后面的方法,类中方法间调用,和类外调用的方法要求是一样的,
装饰器,私有属性,私有方法,
装饰器有类装饰器和属性装饰器,本质都是通过函数调用实现装饰的效果
私有属性,方法
使用__命名的属性和方法,外部不能正常调用得到
类的继承
子类继承父类,仍然可以对它里面的属性进行修改, 它提高了代码的复用,降低了内存
子类可以通过和父类中的方法和属性设置相同的名字来实现对父类方法的重写和覆盖
重写 方法如果修改了对象属性,或者类变量,可能会照成其他的方法不能执行,或者正常执行
继承之中涉及到匿名属性和方法的继承,对它们的进行调用和修改要考虑的情况经常非常复杂,复杂到在这里要避开讨论,子类使用到了父类的匿名属性的方法叫魔术方法,可以通过一些方法避免这种情况
多继承,用的少,它继承了多个类的特性,如果类中的属性方法名全都不同,那就相当于把个类写入了一个类中.(初始化方法的名称是一样的)
如果其中有重叠部分,那情况会复杂很多
调用一个方法时,会有一定的顺序在父类中查找, 使用  类.mro()可以查看这个搜索路径,
调用方法如果在一个类中找到了就会停止搜索,调用该方法
子类中重写 父类方法,修改属性与单继承一至
面向对象的七个设计原则
原则一:(SRP:Single responsibility principle)单一职责原则又称单一功能原则,类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,
原则二:开闭原则(OCP:Open Closed Principle)核心思想:对扩展开放,对修改关闭。即在设计一个模块的时候,应当使这个模
块可以在不被修改的前提下被扩展.
原则三:里氏替换原则(LSP:Liskov Substitution Principle)
子类应当可以替换父类并出现在父类能够出现的任何地方,子类要不能覆盖父类的属性和方法
原则四:依赖倒转原则(DIP:Dependence Inversion Principle)
高层模块不应该依赖低层模块,两者都应该依赖其抽象(抽象类或接口) ,抽象不应该依赖细节(具体实现),细节(具体实现)应该依赖抽象
原则五: 迪米特原则  迪米特原则要求尽量的封装,尽量的独立,尽量的使用低级别的访问修饰符。这是封装特性的典型体现。一个类如果暴露太多私用的方法和字段,会让调用者很茫然。并且会给类造成不必要的判断代码。所以,我们使用尽量低的访问修饰符,让外界不知道我们的内部。这也是面向对象的基本思路。这是迪米特原则的一个特性,无法了解类更多的私有信息。
原则六: 组合/聚合复用原则  此原则的含义是,如果只是达到代码复用的目的,尽量使用组合与聚合,而不是继承。这里需要解释一下,组合聚合只是引用其他的类的方法,而不会受引用的类的继承而改变血统。组合聚合复用原则的潜台词是:我只是用你的方法,我们不一定是同类。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88334

(0)
上一篇 2017-11-13 10:54
下一篇 2017-11-13 16:16

相关推荐

  • Linux系统解压缩

    Linux系统解压缩 gzip/gunzip 语法gzip [OPTIONS] + 压缩之后的路径 + 要压缩的文件 -#:压缩比 (不常用) -d:解压缩,相当于gunzip -c:将压缩后的数据输出至标准输出 -r:递归至目录中对每个文件进行压缩 zcat :查看压缩文件的内容 ——————————————————————————————————————…

    Linux干货 2017-08-15
  • Linux的哲学思想

    一切皆文件:所有设备在linux都表现为一个文件,比如目录文件、块文件、字符文件、设备文件; 用小型,单一用途的程序完成复杂功能:复杂的任务可以通过连接多个简单的程序实现复杂的功能;配置服务器,只要修改配置文件即可实现;

    Linux干货 2018-03-04
  • 网络N23期第二周:linux上的目录与文件管理命令,bash的工作特性等

    1、Linux上的目录与文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1.1 mkdir  创建目录 使用方法:mkdir [OPTION]… DIRECTORY… 常用选项: -p:按需创建父目录 -m:创建目录权限 -v:输出详细创建目录过程 实例: 创建/tmp/test2/test3目录,定义权限为rwxrw-rw-,并详细显…

    Linux干货 2016-10-09
  • Bash Shell详解

    引言:什么是Shell? Linux的命令行接口归结起来就是各种Shell,那么到底什么是Shell?Shell,译为外壳,是用户直接连入计算机所使用的计算机程序,负责解析用户提供的命令,如词法分析、语法分析、句法分析。 1.Shell的分类 Linux 的命令 shell 是与操作系统相分离的一层。不同的 shell 环境影响您具备不同的功能,比如可编辑的…

    2017-09-07
  • haproxy 动静分离负载均衡、​stats页面实现​。

    实验环境:一台主机提供haproxy、nfs、mariadb,后端2台apache部署wordpress。 实验目的:haproxy使得动静分离、以及开启stats页面。 haproxy简单介绍 负载均衡的解决方案,支持4、7层,特点是单进程模型(可配置为多进程模型)单进程能支持非常大的并发链接数量(相比较其他软件)。 到今天,马哥课程中的负载均衡方案(lv…

    Linux干货 2017-02-18
  • N_28 linux基础知识

    1.计算机的组成
    2.linux的各发行版
    3.linux的哲学思想
    4.一些linux的基本命令
    5.帮助信息
    6.FHS

    2017-12-01