Когда вы создаете два экземпляра или объект, это не одно и то же. Давайте сядем, у меня есть универсальный класс Triangle с атрибутами a, b, c. У меня может быть два разных треугольника с разной длиной стороны одновременно. Вы должны изменить атрибут только 1 экземпляра брони / оружия за один раз. Можете ли вы опубликовать пример реализации вашего класса оружия / объекта, чтобы мы могли лучше понять, что вы пытаетесь сделать?
Edit:
Давайте попробуем объяснить класс и подкласс в вашей среде. Мы хотим определить общий объект под названием оружие, у которого есть некоторый атрибут для урона и дальности.
class Weapon:
def __init__(self, dmg):
self.dmg = dmg
self.range = 1
self.ench = None
self.upg = None
def enchant(self, value):
self.ench = value
def upgrade(self, value):
self.upg = value
def __str__(self):
return "Generic weapon, {} dmg and {} range".format(self.dmg, self.range)
Теперь мы хотим создать подкласс с именем Sword, который наследует все от универсального класса, но может реализовать более специфический атрибут и функцию.
class Sword(Weapon):
def __init__(self, dmg):
Weapon(self, dmg)
self.range = 5
def __str__(self):
"Sword, {} dmg, {} range, {} enchant, {} upgrade"
.format(self.dmg, self.range, self.ench, self.upg)
Теперь вы можете использовать оба типа оружия в одном стиле, подкласс ING - общий родительский класс.
a = Weapon(2)
b = Sword(5)
c = Sword(5)
c.enchant(2)
d = Sword(5)
d.upgrade(1)
print("{}\n{}\n{}\n{}".format(a,b,c,d))
=> Generic weapon, 2 dmg and 1 range
Sword, 5 dmg, 5 range, None enchant, None upgrade
Sword, 5 dmg, 5 range, 2 enchant, None upgrade
Sword, 5 dmg, 5 range, None enchant, 1 upgrade
Я надеюсь, что вы поняли эту концепцию, я предлагаю вам подробнее изучить это из некоторого онлайн-учебника, вы можете просто найти ООП.