Если вы собираетесь вызывать методы из самого класса, как вы делаете в своем коде, «ДА», то нет никакой разницы.Однако вещи начнут отличаться, как только вы начнете вызывать эти методы с объектом класса.
Связанный метод или метод экземпляра - это функция, которая связана с объектом класса ивсегда будет требовать ссылку на объект класса в качестве первого аргумента.
Метод класса - это функция, которая связана с самим классом и всегда требует ссылку на сам классв качестве первого параметра.
Статические методы - это те, которые не связаны ни с классом, ни с объектом класса.
Даже с вашим кодом, если мне нравитсяthis.
a = A()
a.print2('123') # this will work just fine, since this is a static method
a.print1('123') # this will give me the TypeError print1() takes 1 positional argument but 2 were given
Поскольку print1
является экземпляром или связанным методом, поэтому, когда этот метод вызывается с объектом класса a
, в этом случае для него требуется первый параметр в качестве ссылки на объект,Эта ссылка передается неявно при вызове метода с объектом.