多继承
多继承:让一个类同时继承多个类
两个类的方法都能继承,字段也能继承,但是对象属性只能继承第一个类的对象属性
2.多态
类的特点:多态,继承,封装
封装:可以对多个功能和多条数据进行封装
继承:可以让一个类拥有另外一个类的属性和方法
多态:有继承就有多态(一个事物的多种形态)
运算符重载
python中函数不支持重载
2.运算符重载
python中使用运算符的时候,实质是在调用相应的魔法方法
(python中每个运算符都对应一个魔法方法)
运算符重载:在不同的类中实现同一个运算符对应的魔法方法,来让类的对象支持相应的运算
内存管理机制
1.堆和栈
内存区域分类堆区间和栈区间,栈区间的内存开辟和释放是自动的,堆区间是手动的。
内存管理:管理的是堆区间
2.数据的存储
a.python中所有的数据都是对象,都是保存在堆中
b.python中所有的变量存储的都是在堆中的数据的地址,存了对象的地址的变量又叫做对像的引用
c。默认情况下创建对象就会在堆中开辟空间存储数据,并且将地址返回,如果对象是数据或者字符串会做缓存,而是会先去缓存中看之前有没有存过,如果有就直接返回之前的数据的地址,没有才开辟新的空间存储数据
3.数据的销毁
python中通过垃圾回收机制来管理内存的释放
原理:看一个对象是否销毁,就看这个对象的引用计数是否为零,为零就销毁,不为零就不销毁
引用计数:对象的引用个数
增加引用计数:使变量存对象的地址
减少引用:
a.删除引用
b.让当前对象的引用成为别的对象的引用
注意:垃圾回收其实就是回收引用计数是否为零的对象,但是系统不会时时刻刻的检测对象的引用计数是否为零,而是隔一段时间检测一次,如果检测到垃圾就回收
最小游戏系统
import pygame
1.游戏初始化
pygame.init()
创建游戏窗口
set_mode(窗口大小) - 窗口大小是一个元组,有两个元素,width height
set_mode((宽度,高度))
宽度和高度的单位是像素
window = pygame.display.set_mode((600, 600))
窗口填充成指定的颜色
fill(颜色) - fill(r, g, b)
计算机颜色:计算机三原色 - 红绿蓝(rgb)
颜色值就是由三个数字组成,分别代表红绿蓝,数字范围0 - 255
python中的颜色是一个元组,元组中有三个颜色,分别是r, g, b
(255,255,255)- 白色
(0,0,0)- 黑色
(255,0,0) - 红色
(0,255,0) - 绿
window.fill((255, 255, 255))
将窗口展示到显示设备上
pygame.display.flip()
3.创建游戏循环
while True:
4.检测事件
for event in pygame.event.get():
区分不同的事件,做出不一样的反应
判断关闭按钮点击事件是否发生
if event.type == pygame.QUIT:
exit()