, программируя мини-игру, я наткнулся на то, что не могу объяснить сам (довольно плохо знаком с python). Это мой код:
class Block:
def __init__(self, x, y, hitpoints=1, color=(255, 0, 0), width=75, height=35):
self.color = color
self.x = x
self.y = y
self.height = height
self.width = width
self.hitpoints = hitpoints
class Ball(Block):
def __init__(self, x, y, size, color=(255, 255, 255), velocity=1):
super().__init__(self, x, y, color)
self.velocity = velocity
self.size = size
Я инициализирую объектный шар с помощью
ball = Ball(x=200, y=200, size=30)
Проблема возникает, когда я вызываю ball.x, так как он возвращает <Objects.Ball object at 0x00000249425A3508>
.
Если я вызываю ball.y, он работает как положено и возвращает 200.
Я могу решить всю проблему, изменив класс Ball следующим образом:
class Ball(Block):
def __init__(self,x, y, size, color=(255, 255, 255), velocity=1):
super().__init__(self, y, color)
self.velocity = velocity
self.size = size
self.x = x
Может кто-нибудь объяснить мне, почемуэто происходит?
Большое спасибо!