面向对象简单介绍

面向对象简单介绍

面向对象
类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)
10590628461059062846
上一篇 2017-11-12 20:28
下一篇 2017-11-13 09:33

相关推荐

  • Linux入门之Centos6 和Centos7的安装

    在安装Centos6 和Centos7 之前,首先VMware需要安装完成,所需镜像CentOS-6.9-x86_64-bin-DVD1和CentOS-7-x86_64-Everything-1611(本次实验所用的版本)准备好,然后开启VMware,进行安装之旅,在安装过程中,Centos6 和Centos7 在前15步的配置是一样的步骤,在16步开启虚拟…

    2017-07-15
  • 马哥linux0811作业内容

    总结位置变量$1,$2.. $10,$11…MAX 位置变量的含义分别就是代表第几个参数,$1就是脚本运行的第一个参数.$2就是第二个.以此类推.直到最后. $*,$@,$# 区别 特殊变量: $0 : 表示命令本身 $#:传递给命令的参数个数 $*:传递给脚本的所有参数(所有参数是一个整体的字符串) $@:传递给脚本的所有参数(各个参数都是独立…

    Linux干货 2016-08-19
  • 26期全程班-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     # who | cut -d” ” -f 1 | sort -u   2、取出最后登录到当前系统的用户的相关信息。     # id `last …

    Linux干货 2017-02-18
  • 心清冷其若冰,志皎洁其若云

    第一篇,当做测试也做开始。 心清冷其若冰,志皎洁其若云。 这闹哄哄的人间啊,仿佛是一堆杂货。无奇不有,无所不能。情感,城市,人际。每天走在这杂乱里,需要有一颗清澈而安静的心,来面对。 会累的。就算是拥有了许多,也是会累的。偶尔,我们也会在深夜里泪流满面吧。偶尔,我们也会心烦意乱的不知所措吧。 太多欲望的人间,热闹的上演着各种剧本。太多空洞的灵魂,喧嚣着各种声…

    Linux干货 2016-11-28
  • 任务计划配置

             任务计划:         linux任务计划,周期任务执行         未来的某个时间点执行一次任务:at,batc…

    Linux干货 2016-09-12
  • Linux程序包管理

    Linux程序包管理 RPM包基础 RPM YUM 编译安装 概述 Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm、yum、源码编译来浅析Linux的程序包管理。首先,我们来看下本文的主要内容: – 程序包的命名- RPM: 程序包管理器    安装、卸载、升级、查询…

    Linux干货 2016-08-29