gpt4 book ai didi

python - 如何删除相似的python类之间的重复

转载 作者:行者123 更新时间:2023-11-28 21:10:56 29 4
gpt4 key购买 nike

我目前有两个类:Block 和 Pic

不幸的是,它们几乎完全相同。我正在寻找删除两个类中重复部分的最佳方法。

class Block(pygame.sprite.Sprite):

def __init__(self, colour, width, height):
pygame.sprite.Sprite.__init__(self)

self.image = pygame.Surface([width, height])
self.image.fill(colour)

def invert(self):
self.image = inverted(self.image)

def set_speed(self, speed):
self.speed = speed

class Pic(pygame.sprite.Sprite):

def __init__(self):
pygame.sprite.Sprite.__init__(self)

self.image = pygame.image.load('icon.png').convert()

def invert(self):
self.image = inverted(self.image)

def set_speed(self, speed):
self.speed = speed

最佳答案

如何创建一个公共(public)基类?

class BaseClass(pygame.sprite.Sprite):
'baseclass for your derived classes, feel free to choose a better name'
def __init__(self):
pygame.sprite.Sprite.__init__(self)

def invert(self):
self.image = inverted(self.image)

def set_speed(self, speed):
self.speed = speed

class Block(BaseClass):
def __init__(self, colour, width, height):
super(Block, self).__init__()
self.image = pygame.Surface([width, height])
self.image.fill(colour)

class Pic(BaseClass):
def __init__(self):
super(Pic, self).__init__()
self.image = pygame.image.load('icon.png').convert()

关于python - 如何删除相似的python类之间的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35962493/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com