面向对象简单介绍

面向对象简单介绍

面向对象
类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基础2

    linux基础2

    Linux干货 2018-03-18
  • 阿里云修改hostname主机名的一点小技巧

    CentOS 7以后修改主机名一般使用: hostnamectl set-hostname newhostname 如果仍然无效,使用vim打开/etc/cloud/cloud.cfg,将 preserve_hostname=fale 改为 preserve_hostname=true 即可。 以上在阿里云ECS上亲测有效,使用了网上查阅…

    Linux干货 2017-01-09
  • Linux基础知识(一)-linux哲学思想,基础命令,FHS

    1.描述计算机的组成及其功能 2.按系列罗列Linux 的发行版,并描述不通发行版之间的联系和区别. 3.描述Linux的哲学思想,并按照自己的理解对其进行解释 4.说明Linux系统命令的使用格式,详细介绍ifconfig,echo,tty,startx,export.pwd,history,shutdown,poweroff,reboot,hwclock…

    Linux干货 2016-09-22
  • 第三周课堂练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@myserver ~]# whoami  root  [root@myserver ~]# who | cut -d' ' -…

    Linux干货 2016-09-19
  • 马哥教育网络班22期第5周课程作业

    1、显示当前系统上root、fedora或user1用户的默认shell; cat /etc/passwd | grep ^root | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); …

    Linux干货 2016-12-05
  • shell脚本编程之if、case条件语句

    程序执行三种顺序     顺序执行          选择执行          循环执行       &nb…

    Linux干货 2016-08-18