Для чего в языке программирования Python,при объявлении методов класса, в качестве...

0 голосов
31 просмотров

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


Информатика (205 баллов) | 31 просмотров
Дан 1 ответ
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))




(4.2k баллов)
0

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

0

Похоже на то