Возможны 3 варианта решения задачи, разные по степени творческого подхода. Решение №1 (элементарное) При оформлении этого решения количество ламп в сигнале фиксировано и равно количеству всех цветных ламп. Решение №2 (стандартное) При оформлении решения последовательно учитывается то что сигнал может состоять из 1 лампы, из двух ламп, из трех и т.д. ламп. В этом подходе решение, описанное ранее, является частным случаем. Решение №3 (комплексное)При оформлении этого решения учитывается то что лампа может гореть, а может не гореть и тогда важен не только порядок и количество ламп в сигнале, но и положение лампы в общем ряду. Замечание: Основная нагрузка в решении сводится к наиболее полному описанию возможных вариантов сигналов и вычислению их количества.
Первым аргументом каждого метода класса, включая __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))
Решение №1 (элементарное)
При оформлении этого решения количество ламп в сигнале фиксировано и равно
количеству всех цветных ламп.
Решение №2 (стандартное)
При оформлении решения последовательно учитывается то что сигнал может
состоять из 1 лампы, из двух ламп, из трех и т.д. ламп. В этом подходе решение,
описанное ранее, является частным случаем.
Решение №3 (комплексное)При оформлении этого решения учитывается то что лампа может гореть, а может
не гореть и тогда важен не только порядок и количество ламп в сигнале, но и
положение лампы в общем ряду.
Замечание: Основная нагрузка в решении сводится к наиболее полному описанию
возможных вариантов сигналов и вычислению их количества.
Как 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))