Проблемы с self в классе
Что такое self в данном случаем? Ведь self это ссылка на экземпляр класса, то есть, например, a = Test() self ссылается на a, мы можем передать аргументы a и посмотреть их с помощью dict. А тут что происходит?
class Test():
def __init__(self):
self.t = "test"
print(Test())
print(Test().__dict__)
Я предположил, что класс создает какой-то "невидимый" для нас экземпляр и записывает туда аргументы. И с каждым новым вызовом класса создаются разные экземпляры.
print(Test()) # <__main__.Test object at 0x7ff9b57c0630>
print(Test().__dict__) # {'t': 'test'}
print(Test()) # <__main__.Test object at 0x7ff9b57c04a8>
print(Test().__dict__) # {'t': 'test'}
Но видимо нет. Ибо если добавить третий вызов.
print(Test()) # <__main__.Test object at 0x7f0976f064a8>
print(Test().__dict__) #{'t': 'test'}
print(Test()) # <__main__.Test object at 0x7f0976f064a8>
print(Test().__dict__) # {'t': 'test'}
print(Test()) # <__main__.Test object at 0x7f0976f064a8>
print(Test().__dict__) # {'t': 'test'}
Происходит вот такая странная ситуация. Так что же тут происходит, черт возьми?