Kyrym
А получается, что self работает только внутри класса, да?
self это всего лишь переменная, вы можете использовать любую другую, просто так договорились чтобы чужой код был всем понятен.
Когда инстанс вызывает метод класса, то первым аргументом передается ссылка на сам инстанс, я уже писал это. рассмотрим простую функцию
def test(a, b)
print(a,b)
Когда вы ее вызываете вы можете вместо а и b подствить любые значения. например test(1,2) распечатает “1 2”
Теперь возмем простой клас
class Test:
def test(self, a, b):
print( a,b)
чтобы вызвать тот же метод вам нужно сделать чтото типа такого
t= Test()
t.test(1,2)
когда вы вызываете t1.test(1,2) вы указываете только два агрумента,вместо трех, как это былобы с обычной функцией, третий(вернее первый) интерпертатор подставляет сам, в данном случае это t.
выполните следующий код:
class Test:
def test(self):
print(self)
t = Test()
print(t)
t.test()
и сами увидите. полчится чтото типа такого
<__main__.Test object at 0x02DD3850>
<__main__.Test object at 0x02DD3850>