Различия в методах класса в Python: связанные, несвязанные и статические - PullRequest
230 голосов
/ 22 сентября 2008

В чем разница между следующими методами класса?

Это то, что одно статично, а другое нет?

class Test(object):
  def method_one(self):
    print "Called method_one"

  def method_two():
    print "Called method_two"

a_test = Test()
a_test.method_one()
a_test.method_two()

Ответы [ 11 ]

0 голосов
/ 18 января 2019

Определение method_two недопустимо. Когда вы звоните method_two, вы получаете TypeError: method_two() takes 0 positional arguments but 1 was given от переводчика.

Метод экземпляра - это ограниченная функция, когда вы вызываете ее как a_test.method_two(). Он автоматически принимает self, что указывает на экземпляр Test, в качестве первого параметра. С помощью параметра self метод экземпляра может свободно обращаться к атрибутам и изменять их для одного и того же объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...