• Для чего в языке программирования Python,
    при объявлении методов класса, в качестве первого аргумента указывается ключевое слово self (указатель на собственный класс) ? Могут ли быть случаи, когда вместо self указывается другой класс?
    (вот моя догадка: это нужно для реализации наследования, но как именно еще вопрос)

Ответы 3

  • То есть в Python у статичного метода в строке, где объявляется этот метод не будет self указан как первый аргумент?. Другими словами ответ на первый вопрос - Чтобы указать интерпретатору, какой это метод (статичный, или обычный, или классовый) ?
  • Похоже на то
    • Автор:

      otis
    • 6 лет назад
    • 0
  • Первым аргументом каждого метода класса, включая __init__, всегда является текущий экземпляр класса. Общепринято всегда называть этот аргумент self. Как this в С++.Обычный методclass MyClass(object):       def mymethod(self, x):              return x == self._xКлассовые методы в Python занимают промежуточное положение между статическими и обычными. В то время как обычные методы получают первым параметром экземпляр класса, а статические не получают ничего, в классовые методы передается класс.  >>> class A(object):            def __init__(self, int_val):                  self.val = int_val + 1                      @classmethod                      def fromString(cls, val):                     # вместо self принято использовать cls                                               return cls(int(val))
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years