Я недавно узнал, что невозможно скопировать один объект в другой в Python, используя =
, и для этого вам нужно использовать функцию copy()
. Однако кажется, что копия (точнее, функция deepcopy()
) тоже не работает. Вот код:
class Players:
name = None
Infernus = Character(100,80,"Infernus"); Fridgus = Character(100,70,"Fridgus")
Empyreus = Character(150,60,"Empyreus"); Messor = Character(180,60,"Messor")
def setname(self):
self.name = input()
def select(self, choose):
if choose==1:
Select = copy.deepcopy(self.Infernus)
elif choose==2:
self.Select = copy.deepcopy(self.Fridgus)
elif choose==3:
self.Select = copy.deepcopy(self.Empyreus)
elif choose==4:
self.Select = copy.deepcopy(self.Messor)
self.Select.display()
Существует класс Character
, и я создал его объекты, как показано выше. Я хотел бы скопировать их в Select
и затем использовать объект Select
, используя функцию display()
(которая принадлежит классу Character
) с этим.
Вот класс Character
:
class Character:
def __init__(self, h, s, n):
self.healtho = h; self.health = h; self.stamina = s; self.name = n
def display(self):
print("Your character: ",self.name)
Очевидно, я должен иметь возможность использовать функцию display()
, так как Select
была скопирована. Я не понимаю, почему он не работает.
РЕДАКТИРОВАТЬ: я исправил приведенный выше код и изменил «Select» на self.Select, и теперь «Select» распознается как объект.