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

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 3:
 
==Простые классы функций==
Классы могут быть использованный в научных вычислениях для решения многих задач, но чаще всего они востребованы в представлении математических функций с некоторым набором параметров и одной или несколькими независимыми переменными. ДавайтеФункцией посмотримс впараметрами чемявляется, здесьнапример, состоитнаша сложность.самая первая функция
 
 
===Функции с параметрами===
Функцией с параметрами является, например, наша самая первая функция
 
<math>y(t) = v_0(t) - \frac{1}{2}gt^2</math>.
Строка 53 ⟶ 49 :
 
 
===Плохое решение: Глобальные переменные===
Требования к представлению функций таким образом состоит в том, чтобы они принимали только независимую переменную, то есть, получается, выглядели так:
 
Строка 84 ⟶ 80 :
 
 
===Представление функции в виде класса===
Класс заключает в себе набор переменных (данных) и набор функций, связанных в единое целое. Переменные видны изнутри класса всем его функциям. То есть они «глобальные» для функций своего класса. Класс похож на модуль, но находящийся в тексте самой программы. Но при этом по технике его использования он существенно отличается. Например, вы можете создать множество копий одного класса, в то время как модуль выступает в единственном числе. Когда мы получше познакомимся с классами, вы и сами увидите схожие моменты и отличия. А сейчас продолжим рассмотрение нашего примера.
 
Строка 92 ⟶ 88 :
 
 
===Реализация===
Законченный код для нашего класса <tt>Y</tt> выглядит следующим образом:
 
Строка 109 ⟶ 105 :
 
 
===Использование===
Перед тем как мы станем разбираться с тем как этот класс сделан, начнем с того, что покажем как он может использоваться.
 
Строка 137 ⟶ 133 :
 
 
===Переменная self===
Внутри конструктора <tt>__init__</tt> аргумент <tt>self</tt> это переменная, содержащая создаваемый экземпляр. Когда мы пишем
 
Строка 173 ⟶ 169 :
 
 
===Расширение класса===
В классе мы можем иметь так много атрибутов и методов, как захотим, так что давайте добавим новый метод к классу <tt>Y</tt>. Этот метод назовем <tt>formula</tt> он будет выводить стоку, содержащую формулу математической функции ''y''. После этой формулы мы выводим значение ''v<sub>0</sub>'':
 
Строка 237 ⟶ 233 :
 
 
===Методы как обычные функции===
Использование класса позволяет создать несколько функций <tt>y</tt> с разными значениями <tt>v0</tt>:
 
Строка 258 ⟶ 254 :
 
 
===Строки документации===
Классы, как и функции, могут быть описаны простым человеческим языком сразу в следующей строке после заголовка с помощью doc strings — строк документации. Вводятся они абсолютно таким же образом, с помощью тройки двойных кавычек с каждой стороны:
 
Строка 341 ⟶ 337 :
 
 
мы создаем атрибут <tt>self.v0</tt> в методе <tt>value</tt>. Теперь
 
 
Строка 347 ⟶ 343 :
 
 
дает 5. Это значение <tt>v0</tt> используется пока новый вызов не изменит его.