抽象类2018-10-22
补充
1.raise错误类型
自定义错误类型:写一个类继承Exception,重写str方法定义错误提示语
class MyError(Exception):
def __str__(self):
return '需要一个偶数,但是给了奇数'
number=int(input('请输入一个偶数'))
if number&1:
raise MyError
2.多继承
一般在需要继承多个类的功能的时候用
多继承时,只能继承第一个父类的对象属性
3.把对象写入json和把字典列表转化为对象列表
4.把字典添加到类的json文件中
抽象类和抽象方法
抽象类:只能被继承不能实例化(不能创建对象)
抽象方法:声明的时候不用实现,在子类中必须去重写的方法
import abc
声明抽象类:
类继承abc模块中的ABCMeta,继承的时候需要加参数metaclass,并通过abstractmethod来声明抽象方法
子类继承抽象类后,必须在子类中实现抽象类中所有的抽象方法
metaclass-->元类
import abc
class Shape(metaclass=abc.ABCMeta):#声明抽象类
@abc.abstractmethod#声明抽象方法
def draw(self):
pass
抽象类不能实例化
pygame显示
常见模块及功能
display
event
draw
image
font
1.图片显示:
a.加载图片image.load
load(图片地址)-->返回图片对象
b.渲染图片screen.blit
blit(渲染对象,渲染位置)
渲染位置-->元祖,(x坐标,y坐标),原点在左上角
c.展示内容display.flip
fill(颜色)-->填充颜色,计算机三原色rgb颜色
2.文字显示
a.创建字体对象
SysFont(字体名,字体大小,是否加粗-False,是否倾斜=False)
Font(字体文件路径,字体大小)-->自定义字体
b.根据字体创建文字对象
字体对象.render(文字,是否抗锯齿,颜色)
c.渲染文字blit
d.展示filp
3.图形显示
a.画线 draw.line
def line(surface,color,start_pos,end_pos,width=1)
def lines(Surface, color, closed, pointlist, width=1):
surface:窗口,图片,文字对象
closed:是否闭合
pointlist:多点坐标值
b.画圆
def circle(Surface, color, pos, radius, width=0)
pos为圆心
4.pygame事件(event.type)
鼠标事件:
pygame.MOUSEBUTTONDOWN按下
MOUSEBUTTONUP弹起
MOUSEMOTION移动
键盘事件