美文网首页
day14 面向对象基础 Ⅲ 2018-08-02

day14 面向对象基础 Ⅲ 2018-08-02

作者: LPP27149 | 来源:发表于2018-08-02 19:16 被阅读0次

一、方法的重写

  继承后,子类可以拥有除父类继承的内容以外的其他内容

1. 关于方法

a. 在子类中可以直接添加其他方法
b. 重写:
①. 完全重写: 重新实现从父类继承下来的方法, 重写后, 子类再调用这个方法, 就调用子类的方法
②. 部分重写: 保留父类的功能, 再添加新的功能, 可以通过super().方法名调用父类方法已保留父类功能

对象和类调用方法的过程: 先看当前类是否存在这个方法, 没有才看父类有没有这个方法,以此类推, 直到基类(object)为止

2. 对象属性的继承

  通过init()方法来继承父类的属性,如果需要给当前类添加对象属性: 重写init方法, 如果要保留父类的对象属性, 需要使用super()去调用父类的init方法。
补充:
  多态: 同一种事物的不同表现形式, 继承产生多态。
  重载: 一个类中可以有多个名字相同的方法但参数不同,就叫重载。在python中不支持重载。

3. 运算符重载

3.1. 运算符重载 (重新定义运算符运算过程)

  >、<大于和小于只需重载一个, 另一个的结果是可以去其反。
通过运算符的重载可实现对象间的加减,大小比较

class One:
    def __init__(self, name='', age=0, height=0):
        self.name = name
        self.age = age
        self.height = height

    # 重载:  >
    def __gt__(self, other):
        return self.height > other.height

    # 重载: <
    def __lt__(self, other):
        return self.age < other.age

    # 重载: +
    def __add__(self, other):
        return self.age + other.age

    # 重载: -
    def __sub__(self, other):
        return self.height - other.height

二、python 内存管理

  • 内存中有两个特殊的区域: 栈、堆
  • 栈: 栈中的内存是系统自动管理的(内存的开辟和内存的释放) --- 作用域结束, 内存就释放
  • 堆: 堆中的内存都是需要写程序去开辟和释放的(python中这个过程也已经自动化)

原理:
堆中的数据到底是什么时候释放的?

  • 看一个值有几个引用, 当一个值没有引用的时候, 值对应的内存空间就会被释放(引用计数机制)
  • 引用: 储存对象地址的变量

删除引用对象就会被销毁;将对象添加到容器中, 对象的引用会加1


五、包的使用

通过格式import 包from 包 import 内容1, 内容2 来使用包

封装:
对一个功能的封装 用函数
对多个功能的封装 模块和类
对多个数据进行封装 字典, 类
对多个类进行封装 模块
对多个模块进行封装

相关文章

  • day14 面向对象基础 Ⅲ 2018-08-02

    一、方法的重写   继承后,子类可以拥有除父类继承的内容以外的其他内容 1. 关于方法 a. 在子类中可以直接添加...

  • Day14 面向对象基础

    一.编程思想 编程思想: 面向过程编程(穷人思想), 函数式编程, 面向对象编程(富豪) 1.求1+...+100...

  • day14 面向对象基础3

    01重写 继承后,子类可以拥有除父类继承的内容以外的其他的内容 1.关于方法1).在子类中可以直接添加其他的方法2...

  • Day14 面向对象基础3

    01.重写 02.添加属性 03.运算符的重载 04.python 中的内存管理 05.包的使用 01.重写 继承...

  • 2018-08-02 day14 面向对象(增强)

    方法重写 继承后,字类可以拥有除父类继承的内容以外的其他内容 1.关于方法 1).可以直接添加新方法2).重写:a...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • Java基础03面向对象

    Java 基础02Java编程基础 面向对象上 面向对象的概述 面向对象的概述:面向对象是一种符号人类思维习惯的编...

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • java基础回顾(2)

    面向对象:是基于面向过程的一种思想。 面向过程:以函数为基础,关注实现过程。 面向对象:以对象为基础,关注实现结果...

  • 面向对象

    title:面向对象tags: 基础,Java 面向对象 面向对象程序设计简介 面向对象的基本思想是使用类、对象、...

网友评论

      本文标题:day14 面向对象基础 Ⅲ 2018-08-02

      本文链接:https://www.haomeiwen.com/subject/eybsvftx.html