питон любит явное больше чем неявное и любит пространства имён, соответственно невесть откуда берущийся this в жаве/с++ не очень то явно и в какой момент обращение к полям объекта, а в какой к переменным из глобал/локал скоупа - приходится запоминать
ещё можно сделать финт ушами и вместо
a = A()
a.foo() # здесь a передаётся в качестве self
сделать
A.foo(a) # и здесь тоже a передаётся в качестве self
и это иногда бывает очень удобно когда метод надо где-то сохранить отдельно от экземпляра