面向对象简单介绍

面向对象简单介绍

面向对象
类class:属性和方法的集合
对象:类的具象,是一个实体
面向对象三要素:
1、封装:将数据和操作组装到一起(组装),
隐藏数据:对外只暴露一些接口,通过接口访问对象。
2、继承:复用,多继承少修改,OCP(Open-closed Principle)
3、多态:
定义:class MyClass
类的定义就会产生一个类对象,类定义中的变量和方法都是类的属性(保存在类的__dicd__中)
实例化:a = MyClass(),生成了一个类的对象a
实例的初始化 __init__(其内的参数为实例的变量)
实例的变量是每个实例自己的变量,是自己独有的,类的变量是类的实例共享的属性和方法。都保存在各自的__dict__中。

封装:
类方法:
在类定义中,使用@classmethod装饰器修饰,必须至少有一个参数,第一个参数给了cls,cls指代类对象自身
静态方法:
在类定义中,使用@staticmethod装饰器修饰,调用时,不会隐式的传入参数

保护变量:在变量前加_,(开发者之间的约定,解释器没做任何改变)
私有变量:在变量前加__,(解释器将变量名字改了,变成 _类名__变量名)

属性装饰器:
使用@property装饰,后面跟的函数名就是以后的属性名,也是getter。
@property
def age(self):
return self.__age
setter装饰器,可以改属性
@age.setter
def age(self,vaule)
self.__age = vaule
deleter装饰器,可以删除属性,很少用
property必须在前,setter在后

继承:
class Cat(Animal),Cat继承了Animal的属性和方法
继承时,公有的,子类和实例都可以随意访问,私有成员被隐藏,子类和实例不可直接访问,私有变量所在的类内的方法可以访问这个私有变量

如果在子类中写相同的属性或方法,会覆盖父类的方法。
继承中的初始化:
如果父类中定义了__init__方法,应该在子类中调用它(使用 super().__init__(age) 方法)

多继承:
一个类继承了多个类,也就是有多个父类,轻易不要用

Mixin:
一个复杂的类往往需要许多功能,这些功能可能来自不同的类,这就需要有很多的类组合在一起,由Mixin实现
Mixin本质上是多继承实现的,体现的是一种组合的设计模式

 

 

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

(0)
上一篇 2017-11-12 20:28
下一篇 2017-11-13 09:33

相关推荐

  • Linux Cluster之Keepalived + Nginx的实现

      一、实验环境 http server1与http server2组成web集群,由nginx服务器实现负载均衡代理,使用keepalived保证nginx服务的高可用。通过虚拟IP192.168.154.177对外提供web服务。 实验目的: 1)当Nginx server1上的nginx服务异常时,由nginx server2提供反带服务。 …

    2016-11-02
  • 数据库基础

    数据库基础 一、数据模型 数据库模型图 1、层次模型、2、网状模型、 3、关系模型二维关系: 表:就是一个关系及属性的描述,如:学生(学好,姓名,性别,班级)       行:row, entity       列:colume,…

    Linux干货 2016-10-19
  • 21期第一周网络练习作业

    计算机的组成部分及功能 由运算器、控制器、存储器、输入设备和输出设备组成 其中运算器负责数据的算术运算和逻辑运算,即数据的加工处理;   控制器负责对控制信息进行分析,控制并协调输入、输出操作或内存、外存访问;   存储器用来存放计算程序及参与运算的各种数据,实现类似人脑记忆功能的部件,分为内存和外存;  &…

    Linux干货 2016-07-12
  • 关于文件 atime mtime gtime 专题–2016-07-27

    Linux文件组成部分:元数据(metadata)和数据(date) 元数据的查看方式:使用stat命令; 数据的查看方式:文本格式使用 cat nano查看及修改即可; stat命令: 功能说明:显示文件或文件系统的状态 语法: stat  [OPTION] …  FILE… 参数:   举例: [ro…

    Linux干货 2016-08-04
  • GlusterFS测试报告-01

    一、GlusterFS基础环境的介绍 1、关于GlusterFS文件系统和架构的介绍 http://jingyan.baidu.com/article/046a7b3ef65250f9c27fa9d9.html 2、实验的目的 a. 利用多台性能较低并且老旧的服务器,实现企业的云盘功能 b. GlusterFS服务端和客户端的部署和配置 c. 实现Glust…

    Linux干货 2016-07-22
  • keepalived的初级使用

        1、双主模型的ipvs高可用   一、双主模型的ipvs高可用     1)网络结构图       2)、ipvs的类型是dr模型,调度算法是rr       RS1和RS2都是centos6.8 对RS1和RS2的配置:…

    Linux干货 2017-05-15