美文网首页
多继承,运算符重载,内存管理,pygame最小系统

多继承,运算符重载,内存管理,pygame最小系统

作者: 222AblackA | 来源:发表于2018-12-08 11:20 被阅读0次

一.多继承(很多语言都删除了多继承功能)

1.多继承:让一个类同时继承多个类,类的方法和字段都能继承,但是对象属性只能继承第一个类的对象属性(实际开发一般不用)

    class Animal:
        num=0
        def __init__(self,name='名字',age=12,color='红毛怪'):
            self.name = name
            self.age = age
            self.color = color
        def show_info(self):
            print('我是show')
    class Fly:
        num1=9
        def __init__(self,distance=0,speed=0):
            self.distance = distance
            self.speed = speed
        @staticmethod
        def show():
            print('飞飞飞飞')
    class Birds(Animal,Fly):
        pass

2.类的特点:继承,封装,多态

    类的封装:可以对多个数据(属性)或者功能(方法)进行封装
    类的继承:让一个类拥有父类的属性和方法
    类的多态:有继承就有多态(一个类的多种子类)

二.运算符重载:python中的函数不支持重载 ,多个相同函数名的函数,最后一个会覆盖其他函数

1.运算符重载:在不同类中实现同一个运算符对象的魔法方法,来让类的方法支持相应的运算

 a.python中使用运算的时候,实质是在电泳相应的魔法方法
 b.python中每一个运算符都对应一个魔法方法
 c.比较运算符中,大于和小于符号,一般只需要重载一个就可以了,另外一个符会自动重载

三.内存管理

1.内存区域:堆区间和栈区间

    堆区间内存开辟和释放:手动开辟手动释放  栈区间内存是系统自动开辟释放
    内存管理的是堆区间的内存(python已经封装了相应的内存开辟管理方法)

2.数据的存储

    a.python中所有的数据都是对象,保存在堆区间里面
    b.python中所有的变量存储的都是存在堆区间中的数据的地址。存了对象地址的变量,又叫对象的引用
    c.默认情况下创建对象就会在堆中取开辟空间存储数据,亲切将地址返回;
        如果是数字,字符串系统不会直接开辟空间,会做缓存,每次使用前会先在缓存中看之前有没有存过,没有存过再开辟空间,存了直接返回之前的数据地址

3.数据的销毁:通过垃圾回收机制来管理内存的释放(java,c++等也是)

    原理:看一个对象的引用计数是否为0,为0就销毁,否则保留
    引用计数:对象的地址被变量保存(引用)的次数
    垃圾回收机制:每隔一段时间清理内存(清除引用计数为0的对象),并不是一直在清理 
    a.增加对象的引用计数:使用变量存储该对象的地址
    getrefconut(对象) --  获取对象的引用计数 (导入:from sys import getrefconut)
    b.减少对象引用计数:
    删除引用或者让当前对象的引用成为别的对象的引用

四.pygame最小系统:

        import pygame   # 导入pygame模块
        pygame.init()   # 初始化pygame模块
        window = pygame.display.set_mode((400,600))   # 创建一个像素为(400,600)的窗口
        window.fill((255,255,255))  # 渲染背景(白色)
        pygame.dispaly.flip()  # 将渲染的背景显示在窗口上
        while True:
           for enent in pygame.event.get():  #  检测事件的发生
              if event.type == pygame.QUIT:  #  事件类型为点击关闭按钮
                   exit()       # 退出程序

相关文章

  • 多继承,运算符重载,内存管理,pygame最小系统

    一.多继承(很多语言都删除了多继承功能) 1.多继承:让一个类同时继承多个类,类的方法和字段都能继承,但是对象属性...

  • 面向对象和pygame

    类的继承 类的继承 重写 添加属性 运算符的重载 内存机制 认识pygame

  • 继承 方法的重写和运算符重载

    重写 添加属性 运算符的重载 内存管理 包的使用

  • C++面向对象继承与操作符重载

    1.类外运算符重载。 2.类里运算符重载。 3.括号运算符。 4.C++对象继承。 C++多继承 会出现二义性 处...

  • Day14 面向对象基础3

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

  • C++学习三

    一、运算符重载 二、继承 1、基本 2、多继承、二义性 3、属性二义性 4、虚基类(虚继承) 三、多态(虚函数) ...

  • 《C++Primer》第十九章

    第十九章 特殊工具与技术 控制内存分配 1. 重载new和delete 重载这两个运算符与重载其他运算符的过程大不...

  • Day14-面向对象3

    1. 重写 2.添加属性 3.运算符的重载 4.python中的内存管理 5.包的使用

  • 2-ndk学习之c++基础篇(03)

    在c++源码中,会有很多俗称“鬼画符”的代码,很多都是用到了运算符重载 运算符重载 在函数中调用: 继承 在mai...

  • 运算符重载及其他约定

    7.1 重载算术运算符 重载二元算术运算符 重载复合赋值运算符 重载一元运算符 重载比较运算符 等号运算符:‘eq...

网友评论

      本文标题:多继承,运算符重载,内存管理,pygame最小系统

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