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

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 104:
def value(self, t):
return self.v0*t - 0.5*self.g*t**2</source>
 
 
Головоломкой для новичков в классах обычно оказывается параметр <tt>self</tt>, который поэтому для своего понимания может потребовать немного усилий и времени.
 
 
===Использование===
Перед тем как мы станем разбираться с тем как этот класс сделан, начнем с того, что покажем как этот класс может использоваться.
 
Класс создает новый тип данных, так что у нас теперь есть тип данных <tt>Y</tt>, с помощью которого мы можем создавать объекты. Объекты определенного пользователем класса (как <tt>Y</tt>) мы будем называть экземплярами. Следующее выражение создает экземпляр класса <tt>Y</tt>:
 
 
<source lang="python">y = Y(3)</source>
 
 
Казалось бы, мы вызвали класс <tt>Y</tt> как будто это обычная функция. Однако, <tt>Y(3)</tt> автоматически представляется Python как вызов конструктора <tt>__init__</tt> в классе <tt>Y</tt>. Аргументы при вызове, здесь это только число 3, всегда принимаются как аргументы функции-конструктора <tt>__init__</tt> следующие после всегда стоящего на первом месте аргумента <tt>slef</tt>.
 
Имея на руках экземпляр <tt>y</tt>, мы можем узнать значение ''y''(''t''=0.1; ''v<sub>0</sub>''=3) с помощью инструкции
 
 
<source lang="python">v = y.value(0.1)</source>