Как присвоить нескольким классам одинаковое значение переменной внутри?
Хочу вытянуть значение цвета фигуры и в дальнейшем использовать. Суть в том чтобы не перебирать if pewka.color == "red" or ladja.color =="red"
а сделать одной переменной или классом:
if figure == "red": #
else: #
class pewka():
def ___init___(self,x,y,color):
self.x = x
self.y = y
self.color = "red"
class ladja():
def ___init___(self,x,y,color):
self.x = x
self.y = y
self.color = "red"
Попробуйте создать класс предок figure и в него записать общие свойства фигур, такие как цвет, состояние(если необходимо) или любые, которые придумаете, тогда сможете обратившись к переменной прочесть свойство класса предка figure.color
Вот вам неправильный подход к ООП, но который решает вашу задачу. Так же тут класс "redFigure()" является классом предком. Почему он неправильный вам стоит разобраться.
class redFigure():
color = 'red'
def __init__(self,x,y):
self.x = x
self.y = y
class Pawn(redFigure):
step_type = 'xy'
def __init__(self,x,y):
super().__init__(x,y)
pawn = Pawn(0,0)
print(isinstance(pawn,redFigure)) #Ваша проверка на цвет if figure == "red": #
print(pawn.color, pawn.x,pawn.y)
Похоже, вы не очень понимаете, как работают классы.
Если вы создаёте аттрибут self.color - то это аттрибут экземпляра, а не класса. Вы не сможете обратиться к значению этого аттрибута через класс, это значение будет разное для каждого экземпляра.
Все очень просто
1. Открываете любой туториал по питону на странице, где рассказывается про ООП в питоне.
2. Читаете.
3. Читаете еще раз внимательно.
3.1. В качестве факультатива читаете PEP8
4. ?????
5. PROFIT
вся проблема в том, что координат 0,0 не будет в любом случае, так как они всегда меняются а вот как использовать цвет, чтобы он присваивался к классу, и затем этот цвет можно было использовать я сообразить не могу)