Решено Объекты не копируются с использованием функции копирования - PullRequest
0 голосов
/ 21 марта 2020

Я недавно узнал, что невозможно скопировать один объект в другой в 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» распознается как объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...