Мне было интересно, есть ли способ генерировать атрибуты класса, перебирая аргументы метода init без явного обращения к списку, содержащему все аргументы метода init?
В приведенном ниже примере я могу перебрать hp, image, speed, x, y, чтобы создать собственные аргументы?
class Character(pygame.sprite.Sprite):
def __init__(self, hp, image, speed, x, y):
# Call the parent class (Sprite) constructor
super(Character, self).__init__()
self.image = image
self.rect = self.image.get_rect().move(x, y) #initial placement
self.speed = speed
self.hp = hp
Например, с циклом, который будет выглядеть так:
class Character(pygame.sprite.Sprite):
def __init__(self, hp, image, speed, x, y):
# Call the parent class (Sprite) constructor
super(Character, self).__init__()
for arg in arguments:
self.arg = arg
Я не совсем уверен, как заставить «аргументы» относиться к hp, image, speed, x и y? Или я застрял в использовании списка, как показано ниже?
class Character(pygame.sprite.Sprite):
def __init__(self, hp, image, speed, x, y):
# Call the parent class (Sprite) constructor
super(Character, self).__init__()
for arg in [self, hp, image, speed, x, y]:
self.arg = arg
for arg in [self, hp, image, speed, x, y]: self.arg = arg
просто оставит вас с одним атрибутомarg
со значениемy
.... - person schwobaseggl   schedule 29.04.2016