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)
daishitongdaishitong
上一篇 2017-11-13
下一篇 2017-11-13

相关推荐

  • 第1周-1:计算机的组成及其功能以及部分常见Linux发行版简介

    一、计算机的组成及其功能: 计算机主要由硬件部分和软件部分组成。 1、硬件部分 (1)中央处理器 由控制器和运算器两大部分组成,是计算机的大脑,硬件部分里最关键的部分。决定着整个计算机系统的性能。 控制器负责协调计算机硬件的其他部分同步工作,对其他的硬件进行发号施令。是计算机系统的司令。控制器从存储器中读取指令,分析指令的含义,要完成什么操作,需要什么数据,…

    Linux干货 2016-11-01
  • 第六周:vim编辑器和cron计划任务的使用练习

    查看vim编辑器的使用介绍另见:http://afterdawn.blog.51cto.com/7503144/1855557 at及cront计划任务介绍见:http://afterdawn.blog.51cto.com/7503144/1864365 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件…

    Linux干货 2016-10-26
  • crm命令行命令详解

    crm -status 显示当前集群状态 -configure 配置集群 a.show xml 显示当前集群配置信息(xml格式) b.property 显示集群可用的全局属性(键入之后按两下Tab) -verifiy 校验 -commit 提交 -node a.online 设置当前节点上线 b.show 显示当前节点状态 c.standby 将当前节点设…

    Linux干货 2017-11-04
  • Nginx+Keepalived实现站点高可用

    Nginx+Keepalived实现站点高可用 vrrp 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引…

    Linux干货 2016-11-07
  • 在VMware Workstation上安装CentOS 7

    1.新建虚拟机设备设置 2.开启此虚拟机,进行安装设置    需设置4处  时间,SOFTWARE SELECTION,分区,NETWORK & HOST NAME    (1) 首先 时间设置,选中上海时间,设置现在的Windows时间,设置好后,点击Done退出。(下面同意Done保存退…

    2017-07-15
  • 马哥教育网络20期+第二周练习博客

    1、 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 ls 使用方式:ls [OPTION]… [DIR]… 常用选项: -a:显示所有档案及目录;  -A:显示除影藏文件“.”和“..”以外的所有文件列表; -C:多列显示输出结果。这是默认选项;  -l:与“-C”选项功能相反,所有输出…

    Linux干货 2016-06-23