(«переменные» здесь относятся к «именам», я думаю, я не совсем уверен в определении использования pythonistas)
У меня есть объект и некоторые методы.Все эти методы нужны и все меняют переменные объекта.Как я могу, в большинстве питонов и в лучшем, уважая методы ООП, добиться того, чтобы переменные объекта использовались методами, но также сохранили их исходные значения для других методов?
Должен ли я копироватьобъект каждый раз, когда метод вызывается?Должен ли я сохранять исходные значения и иметь метод reset () для сброса их каждый раз, когда метод нуждается в них?Или есть еще лучший способ?
РЕДАКТИРОВАТЬ: меня попросили псевдокод.Поскольку меня больше интересует понимание концепции, а не просто конкретное решение проблемы, с которой я сталкиваюсь, я попытаюсь привести пример:
class Player():
games = 0
points = 0
fouls = 0
rebounds = 0
assists = 0
turnovers = 0
steals = 0
def playCupGame(self):
# simulates a game and then assigns values to the variables, accordingly
self.points = K #just an example
def playLeagueGame(self):
# simulates a game and then assigns values to the variables, accordingly
self.points = Z #just an example
self.rebounds = W #example again
def playTrainingGame(self):
# simulates a game and then assigns values to the variables, accordingly
self.points = X #just an example
self.rebounds = Y #example again
Выше приведен мой класс для объекта Player (для примераПредположим, он баскетболист).У этого объекта есть три различных метода, которые все присваивают значения статистике игроков.
Итак, скажем, у команды есть две игры в лиге, а затем игра в кубок.Я должен был бы сделать эти вызовы:
p.playLeagueGame()
p.playLeagueGame()
p.playCupGame()
Очевидно, что, когда второй и третий вызовы сделаны, ранее измененная статистика игрока должна быть сброшена.Для этого я могу либо написать метод сброса, который устанавливает все переменные обратно в 0, либо скопировать объект для каждого вызова, который я делаю.Или сделайте что-то совершенно другое.
Вот в чем заключается мой вопрос, каков наилучший подход, с точки зрения Python и OOP?
ОБНОВЛЕНИЕ: Я подозреваю, что у меня это слишком усложнилосьи я могу легко решить мою проблему, используя локальные переменные в функциях.Тем не менее, что произойдет, если у меня есть функция внутри другой функции, могу ли я использовать локальные переменные внутри внутренней?