Python игнорирует отступы и продолжает выполнять код как часть класса в VSCode - PullRequest
0 голосов
/ 10 февраля 2020

Хорошо, это может быть совершенно глупо, но здесь идет. Я создаю простой класс в python, используя VSCode. Затем я создаю экземпляр класса, и он просто продолжает работать и создавать экземпляры, пока не получу RecursionError: максимальная глубина рекурсии превышена, как если бы неиспользуемый код был частью класса.

class Account:
   def __init__(self, initialCash):
      self.money = initialCash
      print("New account created. Initial budget: " + self.money)

   @property
   def money(self):
      return self.money

   @money.setter
   def money(self, value):
      self.money = value

account2 = Account(100)

Отступ равен 3 пробелы, автомат c, как установлено в настройках VSCode. Чего мне не хватает?

1 Ответ

0 голосов
/ 10 февраля 2020

self.money вызывает сеттер, который вызывает сеттер, который ...

Вы должны переименовать атрибут:

class Account:
    def __init__(self, initial_cash):
        self._money = initial_cash
        print(f"New account created. Initial budget: {self.money}")

    @property
    def money(self):
        return self._money

    @money.setter
    def money(self, value):
        self._money = value
...