Mutable Аргумент по умолчанию позволяет получить доступ к данным из других экземпляров класса - PullRequest
0 голосов
/ 27 октября 2019

С необязательным аргументом в функции можно получить доступ к количествам другого экземпляра класса. (см. код ниже). Я делаю что-то не так, или это ожидаемое поведение?

Linux, Python 3.7.3 [GCC 7.3.0]

class Cat:
   def __init__(self, name):
       self.name = name
       print(name)

   def my(self,  d = {}):
       print('Before: ',d)
       d[self.name] = str(self.name)
       print('After: ',d)



tiger = Cat('Tiger')
tiger.my()


lion = Cat('Lion')
lion.my()

Вывод кода:

Tiger
Before:  {}
After:  {'Tiger': 'Tiger'}
Lion
Before:  {'Tiger': 'Tiger'}
After:  {'Tiger': 'Tiger', 'Lion': 'Lion'}
...