Программирование и научные вычисления на языке Python/§15: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 299:
 
 
==Альтернативная реализация классов функций==
Чтобы далее продолжить знакомство с программированием с участием классов, теперь мы реализуем класс <tt>Y</tt> другим образом.
 
Это хорошая привычка всегда в классе иметь конструктор и инициализировать в нем атрибуты класса. Но это не обязательное требование. Давайте выбросим конструктор и представим v0 как аргумент метода <tt>value</tt>. Если пользователь при вызове не задает <tt>v0</tt>, то мы используем значение из более ранних вызовов, находящееся в атрибуте <tt>self.v0</tt>. О том, задал ли пользователь <tt>v0</tt> или нет, мы узнаем, задав в определении <tt>v0</tt> значение по умолчанию None, а дальше проверяя его с помощью <tt>if</tt>. Наша альтернативная реализация представлена теперь классом <tt>Y2</tt>:
 
 
<source lang="python">
class Y2:
def value(self, t, v0=None):
if v0 is not None:
self.v0 = v0
g = 9.81
return self.v0*t - 0.5*g*t**2
</source>