HOW-TO: Программа на Python, Часть 4 Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
fullcircle:30:python_ч_4 [2013/10/05 08:19]
[Коды]
fullcircle:30:python_ч_4 [2015/12/03 20:43] (текущий)
Строка 24: Строка 24:
 Класс — это способ построения объектов. Объект — это способ группирования атрибутов и поведений. Я знаю, это звучит запутанно,​ но я вам объясню. Представьте это себе таким образом. Объект — это способ смоделировать что-либо в реальном мире. Класс — это метод, используемый нами для осуществления этого. Например,​ у нас дома есть три собаки:​ бигль, лабрадор и помесь немецкой овчарки с австралийским хилером. Все три — собаки,​ но все разные. У них есть общие черты, но есть и отличия. К примеру,​ бигль — низкий,​ пухлый,​ коричневый и сварливый. Лабрадор — среднего размера,​ чёрный и очень спокойный. Помесь овчарки и хилера — высокая,​ худая, чёрная и, более того, немного сумасшедшая. Сразу хорошо заметны некоторые атрибуты. Низкий,​ средних размеров,​ высокий — атрибуты роста. Сварливый,​ спокойный и сумасшедший — атрибуты характера. С точки зрения поведения можно рассмотреть приём пищи, сон, игры и другие действия. Класс — это способ построения объектов. Объект — это способ группирования атрибутов и поведений. Я знаю, это звучит запутанно,​ но я вам объясню. Представьте это себе таким образом. Объект — это способ смоделировать что-либо в реальном мире. Класс — это метод, используемый нами для осуществления этого. Например,​ у нас дома есть три собаки:​ бигль, лабрадор и помесь немецкой овчарки с австралийским хилером. Все три — собаки,​ но все разные. У них есть общие черты, но есть и отличия. К примеру,​ бигль — низкий,​ пухлый,​ коричневый и сварливый. Лабрадор — среднего размера,​ чёрный и очень спокойный. Помесь овчарки и хилера — высокая,​ худая, чёрная и, более того, немного сумасшедшая. Сразу хорошо заметны некоторые атрибуты. Низкий,​ средних размеров,​ высокий — атрибуты роста. Сварливый,​ спокойный и сумасшедший — атрибуты характера. С точки зрения поведения можно рассмотреть приём пищи, сон, игры и другие действия.
  
-Все три — класса «Собака» (Dog). Вернёмся к приведённым выше атрибутам,​ используемым для описания каждой собаки. У нас получатся такие: Dog.Name (кличка),​ Dog.Height (рост), Dog.Build (телосложение) и Dog.Color (окрас). Также у нас есть варианты поведения,​ такие как: Dog.Bark (лай), Dog.Eat (приём пищи), Dog.Sleep (сон), и т. д.+Все три — представители ​класса «Собака» (Dog). Вернёмся к приведённым выше атрибутам,​ используемым для описания каждой собаки. У нас получатся такие: Dog.Name (кличка),​ Dog.Height (рост), Dog.Build (телосложение) и Dog.Color (окрас). Также у нас есть варианты поведения,​ такие как: Dog.Bark (лай), Dog.Eat (приём пищи), Dog.Sleep (сон), и т. д.
  
 Как я говорил ранее, собаки разных пород. Каждая порода будет подклассом класса Dog (собака). Схематически это будет выглядеть так. Как я говорил ранее, собаки разных пород. Каждая порода будет подклассом класса Dog (собака). Схематически это будет выглядеть так.
Строка 45: Строка 45:
 Становится понятнее?​ Итак, давайте создадим наш простой класс Dog (показан выше). Нач-нём с ключевого слова «class» и названия нашего класса. Становится понятнее?​ Итак, давайте создадим наш простой класс Dog (показан выше). Нач-нём с ключевого слова «class» и названия нашего класса.
  
-Перед тем, как углубиться в код, обратите внимание на функцию,​ которую мы здесь определили. Функция ​__init__ ​(два подчёркивания + init + два подчёркивания) — это инициализация,​ которая работает в любом классе. Она выполняется,​ как только мы вызываем в коде наш класс. В данном случае мы создали це-лый ряд параметров,​ устанавли-вающих основные сведения о нашем классе:​ кличка,​ окрас, рост, телосложение,​ настрое-ние, возраст и состояния «голоен» и «утомлён» (переменные «Hungry» и «Tired» соответ-ственно). Мы ещё вернёмся к ним. Теперь давайте добавим больше кода.+Перед тем, как углубиться в код, обратите внимание на функцию,​ которую мы здесь определили. Функция ​_init_ ​(два подчёркивания + init + два подчёркивания) — это инициализация,​ которая работает в любом классе. Она выполняется,​ как только мы вызываем в коде наш класс. В данном случае мы создали целый ряд параметров,​ устанавливающих основные сведения о нашем классе:​ кличка,​ окрас, рост, телосложение,​ настроение,​ возраст и состояния «голоен» и «утомлён» (переменные «Hungry» и «Tired» соответственно). Мы ещё вернёмся к ним. Теперь давайте добавим больше кода.
  
 <​code>​ <​code>​
Строка 55: Строка 55:
 </​code>​ </​code>​
  
-Этот код БЕЗ отступов и находится он вне нашего класса,​ используя его. Первая строка создаёт экземпляр (Beagle) нашего класса Dog.* Это — инстанцирование,​ процесс создания экземпляра класса. Вслед за этим мы также пере-дали определённую информацию экземпляру нашего класса (кличка бигля, его окрас и тому подобное). Следующие четыре строки получают информацию об объекте Beagle. Вставьте в класс Dog (после функции ​__init__) код, расположенный в правом верхнем блоке.+Этот код БЕЗ отступов и находится он вне нашего класса,​ используя его. Первая строка создаёт экземпляр (Beagle) нашего класса Dog.* Это — инстанцирование,​ процесс создания экземпляра класса. Вслед за этим мы также пере-дали определённую информацию экземпляру нашего класса (кличка бигля, его окрас и тому подобное). Следующие четыре строки получают информацию об объекте Beagle. Вставьте в класс Dog (после функции ​_init_) код, расположенный в правом верхнем блоке.
  
  
Строка 98: Строка 98:
 Моё настроение Спокойный\\ Моё настроение Спокойный\\
 Я голоден = False\\ Я голоден = False\\
-Зевает... ​Ладно уж... Гав Ав Ав Ав Ав Ав Ав Ав Ав Ав Ав Ав Ав\\+Зевает...ok...Гав\\ 
 +Ав Ав Ав Ав Ав Ав Ав Ав Ав Ав Ав Ав\\
  
 Вы научились основам. В качестве домашнего задания расширьте класс Dog, чтобы он допускал большее количество методов,​ к примеру таких, как Play (играть),​ или Encounter StrangeDog (Повстречать НезнакомуюСобаку),​ или вроде того. Вы научились основам. В качестве домашнего задания расширьте класс Dog, чтобы он допускал большее количество методов,​ к примеру таких, как Play (играть),​ или Encounter StrangeDog (Повстречать НезнакомуюСобаку),​ или вроде того.