Для чего в языке программирования Python,
при объявлении методов класса, в качестве первого аргумента указывается ключевое слово self (указатель на собственный класс) ? Могут ли быть случаи, когда вместо self указывается другой класс?
(вот моя догадка: это нужно для реализации наследования, но как именно еще вопрос)
Answers & Comments
Как 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))