面向对象的三大特性

一、封装

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

构造方法 _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. 【 PostgreSQL】工作中常用SQL语句干货

    接触gp数据库近一年的时间,语法上和其他数据库还是有些许不同,工作中常用的操作语句分享给大家! -- 建表语句 create table ods.ods_b_bill_m ( acct_month t ...

  2. 判断计算机是否可以ping通

    #!/usr/bin/python # -*- coding: utf-8 -*- import os of = open('servers.txt','r') ofw=open('servers_p ...

  3. Shell使用手册

    1.循环数组 list=(20180531 20180430 20180331 20180228 20180131 20171231 20171130 20171031 20170930 201708 ...

  4. [EffectiveC++]item06:若不想使用编译器自动生成的函数,就该明确决绝

  5. Kafka生产者producer简要总结

    Kafka producer在设计上要比consumer简单,不涉及复杂的组管理操作,每个producer都是独立进行工作的,与其他producer实例之间没有关联.Producer的主要功能就是向某 ...

  6. c++计算器后续(1)

    自娱自乐: 大概是一直在说的代码规范,大概是玩一玩,以上. 代码规范: 参考原文:链接 相关节选: 4 程序的版式 4.4规则:较长的语句(>80字符)要分成多行书写. 4.5规则:不允许把多个 ...

  7. Kali Nethunter初体验

    1.官网环境要求:n5 n7 n10 android 4.4 2.实验设备: N7 android 4.4.4 N7 android 4.4.3 N5 nadroid 4.4.2 3.开发者模式+us ...

  8. java万年历

    import java.util.Scanner; public class perpetualCalendar { public static void main(String[] args) { ...

  9. XtraBackup出现 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

    解决办法1.建立一个软连接 ln -s /dat/data/mysql/mysql.sock /var/run/mysqld/mysqld.sock 解决办法2:指定--host=127.0.0.1

  10. 人人开源之renren-security

    renren-security,从这周开始我将要对其比较详细的研究,之前的研究只不过是比较浅的.正如在这篇文章读读<编写高质量代码:改善Java程序的151条建议>中说过不要重复造轮子. ...