面向对象的三大特性

一、封装

把数据、值、变量放入到对象中

构造方法 _init_方法

特殊作用: 在 obj = 类名() 执行时: 内部自动执行两个步骤:

1、创建对象

2、通过对象执行类中的一个特殊方法(_init_方法)

class info:
def __init__(self,name,age):
self.name = name
self.age = age
self.gender = '男'
def show(self):
print(self.name,self.age,self.gender) alex = info('alex',20)
alex.show()
mike = info('mike',23)
mike.show()
===>alex 20 男
===>mike 23 男

二、继承

1、继承

   -- 子类继承父类,或称派生类继承基类

class GrandFather:
def plus(self):
print("添加") class Father(GrandFather): # 父类(基类)
def add(self):
print("增加")
def delete(self):
print("删除") class Son(Father): # 子类(派生类)
def get(self):
pass s = Son()
s.add()
s.plus()
===>增加
===>添加

2、重写

-- 防止执行父类中的某些方法

class Father:     # 父类(基类)
def add(self):
print("父类中的增加")
def delete(self):
print("父类中的删除") class Son(Father): # 子类(派生类)
def delete(self):
print("子类中的删除") # 默认不再执行父类中的方法 s = Son()
s.add()
s.delete() # 此时子类不再继承父类中的delete方法,而是调用子类自己的方法
===>父类中的增加
===>子类中的删除

3、扩展

-- 即执行父类中的方法,也执行子类自己的方法

class RequestHandler:
def get(self):
print("父类中的获取")
class BaseRequest(RequestHandler):
def get(self):
super(BaseRequest, self).get() # 执行父类中的方法
#RequestHandler.get(self) 与super方法效果一样,但更推荐使用euper方法
print("子类中的获取") obj = BaseRequest()
obj.get() # 此时方法会执行父类中的方法,再执行子类的方法
===>父类中的获取
===>子类中的获取

4、多继承

-- 子类会根据左侧优先原则,在第一个父类中寻找方法,在找不到的情况下在去父类的父类中寻找

-- 当父类有同一个根时,根会在最后才执行

class Base:
def a(self):
print('Base') class F0(Base):
def a1(self):
print('F0') class F1(F0):
def a1(self):
print('F1') class F2(Base):
def a(self):
print('F2') class S(F1,F2):
pass obj = S()
obj.a()
===> F2

三、多态

  python 原生即为多态,不需要过多进行处理

Python学习 :面向对象 -- 三大特性的更多相关文章

  1. 《Python》 面向对象三大特性之多态、封装

    一.多态 1.什么是多态? 一个类表现出的多种状态:通过继承来实现的 在Java中的表现:在一个函数中需要给参数指定数据类型,如果这个地方可以接收两个以上类型的参数,那么这些类型应该有一个父类,这个父 ...

  2. python之面向对象三大特性: 继承(单继承)

    什么是继承 专业角度: B 继承 A类, B就叫做A的子类,派生类, A叫做B的父类,基类,超类. B类以及B类的对象使用A类的所有的属性以及方法. 字面意思: 继承就是继承父母所有的资产 class ...

  3. Python入门-面向对象三大特性-继承

    面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容. 例如: 猫可以:喵喵叫.吃.喝.拉.撒 狗可以:汪汪叫.吃.喝.拉.撒 如果我们要分别为猫和狗创建一个类,那么就需要为 猫 和 狗 实 ...

  4. Python入门-面向对象三大特性-封装

    一.封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容. 所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 从某处调用被封装的内容 第一步:将内容封装到某处 sel ...

  5. 《Python》 面向对象三大特性之继承

    一.继承大纲: 继承和抽象(两个概念) 1.单继承: 语法: 父类.基类.超类 子类.派生类 继承与重用:子类可以使用父类中的名字(变量和方法) 继承与派生:子类在父类的基础上又新创建了自己需要的方法 ...

  6. Python入门-面向对象三大特性-多态

    Pyhon不支持多态并且也用不到多态,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚"鸭子类型".

  7. python学习-64 面向对象三大特性----继承1

    面向对象三大特性 1.三大特性? 继承,多态,封装 2.什么是继承? 类的继承和现实生活中的父与子,继承关系是一样的,父类为基类. python中的类继承分为:单继承和多继承 3.举例说明 class ...

  8. python 面向对象三大特性(封装 多态 继承)

    今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面 ...

  9. python 面向对象(三大特性)

    python 面向对象(初级) (思维导图 ↑↑↑↑↑) 概述: 面向过程:根据业务逻辑从上到下垒代码. 函数式:将某功能代码封装至函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...

  10. python面向对象三大特性

    面向对象的三大特性: 封装.继承和多态 一.封装 封装,顾名思义就是将内容封装到某个地方,以后可以直接调用被封装到某处的内容. - 将内容封装到某处 - 从某处调用被封装的内容 第一步,将内容封装到某 ...

随机推荐

  1. Linux入门-6 Linux网络基本配置

    1. 网络基础知识 网络编址 IP编址 子网掩码 同一网络主机之间通信--MAC地址 不同网络之间的通信 路由 域名 DNS 基本网络参数 2. Linux网络基础配置 以太网连接 配置网络信息 网络 ...

  2. Linux中如何安装loadgenerator

    /* 1. 到官方网站到HP官网下载Load Generator 安装文件 _Load_Generator_11.00_T7330-15010.iso或者其它网站下载loadrunner-11-loa ...

  3. TFS使用笔记

    TFS是用来存储文件的服务器,放置不同版本的文件.因此文件的数量和内容因版本不同而不同. 在Fig-00中,服务器和本地的对应文件夹Common下的因版本不一致,所以文件数量是不一致的. Fig-00 ...

  4. 移动端不同分辨率适配--使用flexible

    根据阿里手淘团队发布的可伸缩布局方案amfe-flexible,git地址:https://github.com/amfe/lib-flexible. 使用方法: lib-flexible库的使用方法 ...

  5. Odoo启动配置文件

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9278687.html 1:--xmlrpc-port=<端口> 命令选项充许我们将服务器实例的侦听 ...

  6. python中动态导入模块

    当导入的模块不存在时,就会报ImportError错误,为了避免这种错误可以备选其他的模块或者希望优先使用某个模块或包,可以使用try...except...导入模块或包的方式. 例如: Python ...

  7. mvc项目中Controller执行完毕重定向到html的一个页面中

    String ip = request.getLocalAddr(); //取得服务器IP int port = request.getLocalPort(); //取得服务器端口 String ur ...

  8. JNI由浅入深_4_JNI基础知识详解

    Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 ...

  9. lwip IP address handling 关于 IP 地址的 操作 API接口

    lwip 2.0.3  IP address handling /** * @file * IP address API (common IPv4 and IPv6) */ 1.u32_t ipadd ...

  10. 【Javascript-基础-getOwnPropertyNames】Object.getOwnPropertyNames() 获取对象自身可枚举属性

    可枚举属性和不可枚举属性 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for-in查找遍历到. 可枚举属性 e ...