美文网首页
Day16——继承/内存管理

Day16——继承/内存管理

作者: Devil灬 | 来源:发表于2019-01-14 18:49 被阅读0次

一、__ slots __

  1. __ slots __ 的值继承后没有效果
  2. 在类中给 __ slots __ 赋值后,当前类的对象不能使用 __ dict __ ;但是这个类的子类对象可以使用 __ dict __ ,只是 __ dict __ 中没有从父类继承下来的对象属性,只有在子类中添加的对象属性
  3. 如果父类没有给 __ slots __ 赋值,直接给子类的 __ slots __ 无效

二、方法重写

  1. 完全重写
    在子类中重新实现父类的方法
  2. 部分重写
    保留父类的功能在子类中添加新的功能
    (在子类方法中通过 'super().' 的方式调用父类方法)

三、添加对象属性

对象属性其实是通过继承init方法继承下来的
格式:

super().__init__()

四、运算符重载

I. +

def __add__(self, other):
    # self和other的关系: self+other    ==> self.__add__(other)
    # 返回值就是运算结果
    
    # a.支持对象+对象:
    return self.age + other.age
    # b.支持对象+数字
    # return self.age + other

II. *

# 将other当成数字
def __mul__(self, other):
    return self.name * other

III. >

def __gt__(self, other):
    return self.score > other.score

注意:大于和小于运算符是需要重载一个就行


五、内存管理

  1. 数据的存储:
    内存分为栈区间和堆区间;
    python中变量本身是存在栈区间的,函数调用过程是在栈区间; 对象都是存在堆区间(python中所有数据都是对象)
  2. 变量赋值过程:
    先堆区间开辟空间将数据存起来, 然将数据对应的地址存到栈区间的变量中;
    数字和字符串比较特殊,赋值的时候不会直接开辟空间,而是先检测之前有没有存储过这个数据,如果有就用之前的数据的地址
  3. 内存释放(垃圾回收机制)原理:
    python中的每个对象都有一个属性叫'引用计数',表示当前对象的引用的个数。判断一个对象是否销毁就看对象的引用计数是否为0;为0的就销毁,不为0的就不销毁
  4. getrefcount函数:
    getrefcount(对象) -> 获取对象的引用计数

相关文章

  • Day16——继承/内存管理

    一、__ slots __ __ slots __ 的值继承后没有效果 在类中给 __ slots __ 赋值后,...

  • 浅谈内存管理及僵尸对象

    //--------------------内存管理 内存管理范围: 管理任何继承NSObject的对象,基本数据...

  • JAVA面向对象-day02

    A 数组 对象的内存管理 继承

  • 内存管理

    一.内存基本介绍 1、OC内存管理的基本概念 2、OC内存管理的范围​管理范围:管理任何继承自NSObject的对...

  • RxLifecycle 笔

    管理RxJava订阅后内存泄漏(内存管理) 0.添加依赖 1.使用 Activity 继承 RxActivity、...

  • OC关于在MRC模式下的内存管理学习

    内存管理 管理范围 任何继承NSObject的对象 只有OC对象才需要进行内存管理的本质原理 1.OC对象在堆中 ...

  • IOS面试题目学习

    OC有多继承吗?没有的话用什么代替? Objective-C如何对内存管理的?内存管理的原则是? Objectiv...

  • OC内存管理 - OC

    内存管理的范围 范围:管理任何继承NSObject的对象,对其他的基本数据类型无效。 内存分区(5大分区) 栈区:...

  • iPhone/Mac Objective-C内存管理教程和原理剖

    此文涉及的内存管理是针对于继承于NSObject的Class。 一基本原理 Objective-C的内存管理机制与...

  • iOS 的内存管理(ARC)

    基本概念 首先,那些对象才需要我们进行内存管理呢? 任何继承了NSObject的对象需要进行内存管理 而其他非对象...

网友评论

      本文标题:Day16——继承/内存管理

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