Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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 (Повстречать НезнакомуюСобаку), или вроде того. |