定义与调用:
定义类(class)时,构造方法def __init__(self,xxx,xxx)方法是一个特殊的方法,每当该类被调用时都会自动运行它来进行实例创建。并自动传递实参self。(self指该实例)
def __init__(self,xxx,xxx)
调用类创建实例时,需要定义除了self以外的形参(xxx,xxx)。
继承:
与定义新类有两点不同:
①在命名类的时候要在括号中标明父类;
②在定义方法时要把子类的定义和父类的定义结合在一起,通过:
def __init__(self,xxx,xxx,xxx):
super().__init__(xxx,xxx,xxx)
这样在实例化子类的时候就会调用父类的构造方法。
函数:
def contrail(self,x,y):
def update():
如果需要对实例化对象进行操作,要带参数self。如果不需要对某个类的实例化对象进行操作,则不需要self参数。(第二种情况属于方法method,无需传入自变量参数;需要传入实参的才是函数)。
同时,函数还要处理好实参传递的方法(位置传递和关键字传递,默认值)以及返回值方法
return xxx
接下来需要在实例中提供一个变量存储返回值,what=contrail()
跨文件调用前导入:
from xxx import Xxx
例:
class Bullet(Sprite):
def __init__(self,ai_settings,screen,ship):
super().__init__() #因为有父类
self.screen = screen
self.rect=pygame.Rect(0,0,ai_settings.bullet_width,ai_settings.bullet_height)
self.rect.centerx=ship.rect.centerx
self.rect.centerx=ship.rect.centerx
self.rect.top=ship.rect.top
self.y=float(self.rect.y)
self.color=ai_settings.bullet_color
self.speed_factor=ai_settings.bullet_speed_factor