«Введение в Python» от Hexlet
Продолжительность: 5 часов.
Форма обучения: видеоуроки + тесты + текстовые материалы.
Программа обучения:
- Основы синтаксиса.
- Типы-коллекции.
- Python functions.
- Python list comprehensions and generators.
- Python yield and iteration in depth.
- Python strings.
- Юникод в Python.
- Форматирование строк.
- Логические операторы
Чему научитесь:
- освоите основы синтаксиса Python;
- научитесь работать со строками;
- заложите основу для дальнейшего развития в качестве программиста.
- подходит для начинающих;
- простое изложение материала;
- закрепление всех теоретических знаний практикой;
- автоматическая проверка тестов.
Автор курса: Иван Гришаев, работает программистом в SwiftServe. Пишет на Python, JavaScript, Clojure, Common Lisp.
Преобразование типов данных
Одна и та же переменная в процессе выполнения кода может ссылаться на объекты с различными типами данных. Например, после выполнения двух инструкций:
Переменная х_1 сначала ссылается на тип str, затем — на тип float. Для определения последнего типа данных, на который ссылается переменная, служит функция type (имя переменной).
Итак, тип данных — это характеристика объекта, а не переменной. Переменная содержит только ссылки на объект.
Для каждого конкретного типа данных существует строго определенный набор операций, которые могут выполняться над ним. Например, для данных типа int и float можно выполнять арифметические операции. Попытка выполнить, например, операцию сложения целого числа и строки, приведет к выводу сообщения о синтаксической ошибке:
Для преобразования одного типа данных на другой в языке Python применяются специальные функции. Рассмотрим основные функции преобразования одного типа данных на другой.
- bool () — преобразование объекта на логический тип. Функция bool возвращает значение False в случае, если объект равен нулю или пустой, иначе — значение True.
- int (]) — преобразование объекта в целое число. Система счисления, в которой подается объект, может быть десятичной, восьмеричной, шестнадцатеричной. По умолчанию — десятичная система.
- float (целое число или строка) — преобразование целого числа или строки в число вещественного типа.
- str (объект) — преобразование объекта в строку.
- list (последовательность) — преобразование элементов последовательности в список.
Идентификаторы Python
Идентификатор Python — это имя, используемое для идентификации переменной, функции, класса, модуля или другого объекта. Идентификатор начинается с буквы от A до Z или от a до z или символа подчеркивания (_), за которым следует ноль или более букв, знаков подчеркивания и цифр (от 0 до 9).
Python не допускает знаков препинания, таких как @, $ и% в идентификаторах. Python — это язык программирования, чувствительный к регистру. Таким образом, Manpower и manpower являются двумя разными идентификаторами в Python.
Здесь приведены соглашения об именах для идентификаторов Python —
- Имена классов начинаются с буквы верхнего регистра. Все остальные идентификаторы начинаются с малой буквы.
- Начало идентификатора с одним подчеркиванием означает, что идентификатор является приватным.
- Начало идентификатора с двумя лидирующими символами подчеркивания означает сильный приватный идентификатор.
- Если идентификатор также заканчивается двумя завершающими символами подчеркивания, идентификатор является специальным именем, определенным на языке.
«Python Джедай [2016 год] По стандартам США!» от «Хауди Хо»
Пройти курс
Продолжительность: 20 видеозанятий.
Форма обучения: видеоуроки.
Программа обучения:
- Начальный урок.
- Простые действия.
- Работа со строковым типом.
- Хранение данных.
- Управляющие структуры.
- Множественные условия, приоритеты действий.
- Циклы.
- Списки.
- Пользовательские функции.
- Комментирование кода.
- Модули, Генератор случайных чисел.
- Используем модуль метеоданных.
- Отслеживание и обработка исключений.
- Ввод-вывод в файлы.
Чему научитесь:
- освоите синтаксис языка Python;
- научитесь работать со сторонними сервисами;
- ознакомитесь с исключениями и отладкой программ;
- научитесь работать с данными.
Библиотеки и фреймворки
В Python есть уже встроенные библиотеки, поставляемые вместе с интерпретатором. Они служат для расширения возможностей разработчика при написании программ. Также есть огромное количество внешних библиотек и фреймворков, которые можно подключить и использовать.
Такое количество библиотек дает преимущество, и способствует популярности Python. Например, высокоуровневая библиотека Pandas. Назначение Pandas – это обработка и анализ данных. Она используется в таких профессиях как Data Science и продолжает активно развиваться.
Для того, чтобы жизнь разработчика была легче, разработано множество веб фреймворков. Они позволяют автоматизировать рутинные процессы и задачи. Также фреймворки дают готовую структуру для написания web приложений.
Python бибиотека Pandas
Одним из самых популярных фреймворков с открытым свободным кодом является Django. С его помощь можно не добавлять разные библиотеки отдельно, а установить большинство стандартных функций одним пакетом. В 2010 году с помощью фреймворка Django был создан Instagram и в 2012 году Facebook купил его за миллиард долларов.
Pyramid является еще одним open-source популярным фреймворком. Он универсальный, и дает возможность работать с большими и малыми приложениями. У него хорошее и понятное руководство или пособие. Pyramid используется в тех случаях, когда не требуется разработки полноценной CMS, а хватает веб приложения. Этот фреймворк позволяет быстро собрать проект.
Операторы присваивания
Теперь перейдем к рассмотрению операторов присваивания. Они предназначены для того, чтобы передавать переменной определенные значения как принадлежащие другим переменным, так и появившиеся вследствие их обработки. Операторы присваивания нужны еще и для того, чтобы назначать переменным объекты, с которыми можно дальше выполнять определенные действия.
Таким образом, спектр применений операторов этого типа довольно обширный.
Присваивание. Выглядит, как математический знак «равно». Это классический оператор, типичный пример применения которого – присваивание значения переменной. Давайте приведем такой пример.
>>> a = 7
>>> print(a)
7
Сложение и присваивание. Этот оператор не просто присваивает правую часть левой, но и увеличивает её на определённое значение.
Выглядит он, как знак плюса и равно вместе (+=).
Чтобы было более понятно, давайте рассмотрим этот код.
>>> a += 2
>>> print(a)
После выполнения соответствующих арифметических действий интерпретатор выдаст значение 9 при условии, что значение переменной a было 7.
То есть, этот оператор идентичен выражению a = a + 2.
Вычитание и присваивание. Противоположный предыдущему оператор. Если мы используем выражение a -= 2, это будет значить то же самое, что и выражение a = a – 2.
Деление и присваивание. Выполняет операцию деления между двумя операндами. После этого получившееся значение присваивается соответствующей переменной. Позволяет два действия: деление и присваивание запрограммировать всего одной строчкой кода. Можно также использовать переменные, объекты и другие значения, которые можно присвоить левой части, в правой.
Приведем пример.
>>> a /= 7
>>> print(a)
Умножение и присваивание. Выполняет аналогичную последовательность действий для двух операндов. Сначала выполняется арифметическая операция с двумя операндами, а потом получившееся значение присваивается левому. В данном случае такой арифметической операцией служит умножение.
>>> a *= 8
>>> print(a)
Деление по модулю и присваивание. Этот оператор выполняет сразу три действия:
- Делит первый операнд на второй.
- Определяет целое число.
- Присваивает это целое число той переменной, которая находится в правом операнде.
Синтаксис элементарный:
>>> a %= 3
>>> print(a)
Эта программа выполняет три описанных выше действия, после чего получившийся результат печатает в консоли или нижней строке онлайн-интерпретатора. Например, если переменная a = 10, то будет выведено число 3.
Возведение в степень и присваивание. Этот оператор выполняет два действия:
- Берет левый операнд и возводит его в степень, равная числу справа.
- Получившееся число сразу становится значением переменной слева.
Здесь, как и в других операторах, можно использовать переменные в качестве правого операнда. Например, если в левой части находится переменная с числом 4, а в правой – число 2, то на вывод будет отправлено число 16.
>>> a **= 2
>>> print(a)
16
Деление с остатком и присваивание. В принципе, вы уже поняли, как работает и записывается выражение с этим оператором. Он может получать остаток от деления первого числа на второе и возвращать его в ту переменную, которая стоит справа. Например, эта программа выводит остаток от деления на экран.
>>> a //= 3
>>> print(a)
Операторы тождественности
Разберем более подробно операторы тождественности, поскольку они – наименее очевидны для новичка.
Это (is). Этот оператор проверяет тождественность. Если это так, то возвращается значение True. Если же нет, False. Давайте для демонстрации этого оператора приведем несколько примеров.
>>> 2 is 20
False
Здесь сравниваются числа 2 и 20. Они не являются одинаковыми, поэтому вернулось значение False.
>>> ‘2’ is «2»
True
А здесь сравниваются две двойки. При этом кавычки не учитываются, поскольку они не меняют объекты, это лишь системный символ, который позволяет людям и интерпретатору ориентироваться в коде. А поскольку кавычки этого не делают, то и возвращается значение True. Ведь они – идентичны.
Это не (is not). Как и любой обратный оператор, этот показывает полностью противоположное предыдущему значение.
Есть один нюанс. Оба оператора проверяют, являются ли объекты одинаковыми. То есть, если ввести первый операнд 1 и второй операнд ‘1’, то результат будет True в данном случае. Если говорить про предыдущую – False.
>>> 1 is not ‘1’
True
Почему так? Дело в том, что единица не тождественна ‘1’, поскольку эти значения представляют разные типы данных. В прошлом примере кавычки не учитывались, поскольку и в первом операнде, и во втором стоят кавычки. Здесь же мы видим, что первый операнд не имеет кавычки. И в этом случае они не будут считаться идентичными, даже если внешне выглядят одинаково.
«Уроки Python» от itProger
Продолжительность: 21 урок.
Форма обучения: видеоуроки + текстовые уроки + практические задания.
Программа курса:
- Особенности языка Python.
- Установка программного обеспечения.
- Создание первой программы.
- Переменные и типизация в Python.
- Операторы ветвления.
- Цикличные конструкции.
- Списки.
- Индексы и срезы.
- Кортежи.
- Словари и способы работы с ними.
- Множества.
- Пользовательские и встроенные функции
- Обработка исключений.
- Работа с файлами.
- Конструкции With — as.
- Добавление модулей.
- Основы объектно-ориентированного программирования.
- Основные концепции ООП.
- Конструкторы, переопределение методов.
- Декораторы функций.
- Завершающий урок.
Чему научитесь:
- Писать программы на языке Python;
- освоите возможности и сферу применения языка Python;
- изучите основы ООП;
- получите достаточные знания для начала разработки на Python.
- сложные темы объясняются простым языком;
- обучаться можно в любое удобное время.
8.8. Корутины¶
Добавлено в версии 3.5.
8.8.1. Определение функции корутины
async_funcdef ::= [] "async" "def" "(" [] ")" ":"
Выполнение корутин Python можно приостановить и возобновить во
многих местах (см. ). Внутри тела функции корутины идентификаторы
и являются зарезервированными ключевыми словами;
выражения , и могут использоваться
только в телах функций корутины.
Функции, определенные с синтаксисом , всегда являются
функциями-корутинами, даже если они не содержат или ключевые слова
.
Исключение для использования выражения внутри тела функции
корутины.
Пример функции корутины:
async def func(param1, param2): do_stuff() await some_coroutine()
8.8.2. Оператор
async_for_stmt ::= "async"
может вызвать асинхронный код в iter
реализации, а может вызвать асинхронный код в своём
следующем методе.
Оператор предоставляет удобный перебор по асинхронным итераторам.
Следующий код:
async for TARGET in ITER SUITE else SUITE2
Семантически эквивалентен:
iter = (ITER) iter = type(iter).__aiter__(iter) running = True while running try TARGET = await type(iter).__anext__(iter) except StopAsyncIteration running = False else SUITE else SUITE2
Более подробную информацию см. также в разделах и .
Исключение используется в операторе вне тела функции корутины.
8.8.3. Оператор
async_with_stmt ::= "async"
— это , который может приостановить
выполнение в своих enter и exit методов.
Следующий код:
async with EXPRESSION as TARGET SUITE
семантически эквивалентен:
manager = (EXPRESSION) aexit = type(manager).__aexit__ aenter = type(manager).__aenter__ value = await aenter(manager) hit_except = False try TARGET = value SUITE except hit_except = True if not await aexit(manager, *sys.exc_info()): raise finally if not hit_except await aexit(manager, None, None, None)
Более подробную информацию см. также в разделах и .
Исключение используется в операторе вне тела функции корутины.
См.также
- Предложение, которое сделало корутины надлежащим автономным понятием в
Python и добавило вспомогательный синтаксис.
Сноски
Исключение распространяется в стеке вызовов, если только существует предложение , которое вызывает другое исключение. Это новое исключение приводит к потере старого. |
Строковый литерал, появляющийся в качестве первого оператора в теле функции преобразуется в атрибут функции и поэтому в строку функции. |
Строковый литерал, появляющийся в качестве первого оператора в теле класса преобразуется в элемент пространства имён и поэтому в строку класса. |
Основные операторы
Оператор
Краткое описание
+
Сложение (сумма x и y)
—
Вычитание (разность x и y)
*
Умножение (произведение x и y)
Деление
Внимание! Если x и y целые, то результат всегда будет целым числом! Для получения вещественного результата хотя бы одно из чисел должно быть вещественным. Пример: 40/5 → 8, а вот 40/5.0 → 8.0
=
Присвоение
+=
y+=x; эквивалентно y = y + x;
-=
y-=x; эквивалентно y = y — x;
*=
y*=x; эквивалентно y = y * x;
/=
y/=x; эквивалентно y = y / x;
%=
y%=x; эквивалентно y = y % x;
==
Равно
!=
не равно
>
Больше
=
больше или равно
Часть после запятой отбрасывается
4 // 3 в результате будет 125 // 6 в результате будет 4
**
Возведение в степень
5 ** 2 в результате будет 25
and
логическое И
or
логическое ИЛИ
not
логическое отрицание НЕ
Операторы сравнения
С помощью операторов сравнения, как мы уже поняли, мы сравниваем между собой несколько операндов. Приведем операторы сравнения и примеры их использования.
Меньше. Соответствует математическому знаку «меньше». С его помощью программа сравнивает два значения. Если первое оказывается меньше второго, то выдает логическое значение True.
>>> 4<3
False
Больше. Этот оператор выполняет ту же самую операцию. Но возвращает значение True только в том случае, если первый операнд больше второго. То есть, противоположный предыдущему оператор.
>>> 4>3
True
Меньше или равно. Проверяет два условия:
- Левая часть меньше правой, или нет?
- Являются ли левая и правая части одинаковыми.
Если да, она возвращает True. То есть, должно соблюдаться или первое условие или второе.
>>> 7<=7
True
В этом примере мы видим, что число 7 равняется числу 7. Соответственно, программа выводит результат «истина». Ничего удивительного!
Больше или равно. Противоположный предыдущему оператор, возвращающий значение «истина» при соблюдении одного из этих условий:
- Два операнда являются одинаковыми.
- Первый операнд больше второго.
Синтаксис такой же самый, только вместо знака < используется знак >. Приведем пример для наглядности.
>>> 0>=0
True
Равно. В Python знак «равно» отличается от математического, поскольку последний выглядит так же, как оператор присваивания, о котором поговорим немного позже. В Python этот оператор выглядит, как два знака равно, которые идут друг за другом.
Проверка очевидна: этот оператор возвращает значение «истина» в случае, если оба операнда являются одинаковыми. При этом 1 и 0 могут выполнять роль логических операторов. То есть, их можно сравнивать между собой.
Давайте приведем несколько примеров, чтобы было более понятно, как этот оператор работает с различными операндами. Сначала пишется строка кода, а сразу вслед за ней – вывод.
>>> 3==3.0
True
>>> 1==True
True
>>> 7==True
False
>>> 0==False
True
>>> 0.5==True
False
Не равно. Этот арифметический символ также не выглядит, как зачеркнутый знак равно, как в математике. Этот оператор состоит из двух частей – восклицательного знака и математического знака «равно». То есть, он выглядит, как !=.
Полностью противоположный оператору «равно» символ. Если этот оператор обнаруживает, что операнды одинаковые, он возвращает значение «ложь», а не «истина», как в случае с оператором равенства.
>>> 1!=1.0
False
Раньше была еще одна версия этого оператора – <>. Но сейчас она не используется, поскольку была убрана в Python третьей версии.
Работа с классами на Python
Большая часть времени работы программиста — это работа с классами и их экземплярами. Изменим наш предыдущий класс и добавим дополнительные атрибуты, которые сможем в последующем менять при работе с экземплярами класса.
class Car():
«»»Описание автомобиля»»»
def __init__(self, brand, model, years):
«»»Инициализирует атрибуты»»»
self.brand = brand
self.model = model
self.years = years
self.mileage = 0
def get_full_name(self):
«»»Автомобиль»»»
name = «Автомобиль {self.brand} {self.model} {self.years}»
name.
def read_mileage(self):
«»»Пробег автомобиля»»»
(«Пробег автомобиля {self.mileage} км.»)
В описание автомобиля есть три атрибута(параметра) это brand, model, years. Также мы создали новый атрибут mileage (пробег) и присвоили ему начальное значение 0. Так как пробег у всех автомобилей разный, в последующем мы сможем изменять этот атрибут. Метод get_full_name будет возвращать полное описание автомобиля. Метод read_mileage будет выводить пробег автомобиля.
Создадим экземпляр с классом Car и запустим методы:
car_2 = Car(‘audi’, ‘a4’, 2019)
print(car_2.get_full_name())
car_2.read_mileage()
В результате в начале Python вызывает метот __init__() для создания нового экземпляра. Сохраняет название, модель, год выпуска и создает новый атрибут с пробегом равным 0. В итоге мы получим такой результат:
Автомобиль Audi A4 2019
Пробег автомобиля 0 км.
2.1. Прямое изменение значения атрибута
Для изменения значения атрибута можно обратиться к нему напрямую и присвоить ему новое значение. Изменим пробег автомобиля car_2:
car_2 = Car(‘audi’, ‘a4’, 2019)
print(car_2.get_full_name())
car_2.mileage = 38
car_2.read_mileage()
Мы обратились к нашему экземпляру car_2 и связанным с ним атрибутом пробега(mileage) и присвоили новое значение 38. Затем вызвали метод read_mileage() для проверки. В результате мы получим следующие данные.
Автомобиль Audi A4 2019
Пробег автомобиля 38 км.
2.2. Изменение значения атрибута с использованием метода
В Python удобнее писать методы, которые будут изменять атрибуты за вас. Для этого вы просто передаете новое значение методу, который обновит значения. Добавим в наш класс метод который будет изменять показания пробега.
class Car():
«»»Описание автомобиля»»»
def __init__(self, brand, model, years):
«»»Инициализирует атрибуты»»»
self.brand = brand
self.model = model
self.years = years
self.mileage = 0
def get_full_name(self):
«»»Автомобиль»»»
name = «Автомобиль {self.brand} {self.model} {self.years}»
name.
def read_mileage(self):
«»»Пробег автомобиля»»»
(«Пробег автомобиля {self.mileage} км.»)
def update_mileage(self, new_mileage):
«»»Устанавливает новое значение пробега»»»
self.mileage = new_mileage
car_2 = Car(‘audi’, ‘a4’, 2019)
print(car_2.get_full_name())
car_2.read_mileage()
car_2.update_mileage(17100)
car_2.read_mileage()
Вначале выведем текущие показания пробега ( car_2.read_mileage() ). Затем вызовем метод и передадим ему новое значение пробега ( car_2.update_mileage(17100) ). Этот метод устанавливает пробег 17100. Выведем текущие показания ( car_2.read_mileage() ) и у нас получается:
Автомобиль Audi A4 2019
Пробег автомобиля 0 км.
Пробег автомобиля 17100 км.
2.3. Изменение значения атрибута с приращением
Если вместо того, чтобы присвоить новое значение, требуется изменить с значение с приращением, то в этом случаем мы можем написать еще один метод, который будет просто прибавлять пробег к уже имеющемся показаниям. Для этого добавим метод add_mileage в класс :
def add_mileage(self, km):
«»»Добавляет пробег»»»
self.mileage += km
Новый метод add_mileage() получает пробег в км и добавлет его к self.mileage.
car_2.add_mileage(14687)
car_2.()
Пробег автомобиля 31787 км.
В итоге после вызова метода add_mileage() пробег автомобиля в экземпляре увеличится на 14687 км и станет равным 31787 км. Данный метод мы можем вызывать каждый раз при изменении пробега и передавать новые значение, на которое будет увеличивать основной пробег.
«Нейронные сети на Python. Уроки» от selfedu
Пройти курс
Продолжительность: 33 видеоурока.
Форма обучения: видеоуроки.
Программа обучения:
- Популярность нейросетей.
- Как работают нейросети.
- Персептрон.
- Алгоритмы обучения нейронных сетей.
- Увеличение скорости обучения нейросетей.
- Чем опасно и как избежать переобучения?
- Функции активации, оценка работы нейросети.
- Знакомство с Keras.
- Переобучение нейросети.
- Описание Batch Normalization.
- Принципы действия сверточных нейросетей.
- Дополнительные архитектуры нейросетей.
- Работа с изображениями.
- Раскрашивание графических элементов.
- Основы рекуррентных нейросетей.
- Прогноз событий.
- Глубокие рекуррентные нейронные сети.
- Определение и работа с генеративно-состязательными сетями.
Чему научитесь:
- освоите основы нейронных сетей;
- научитесь создавать собственные нейронные сети;
- разберетесь как распознавать знаки и выполнять прочие действия.
Библиотека math
Для проведения вычислений с действительными числами язык Python содержит много дополнительных функций, собранных в библиотеку, которая называется math. Для использования этих функций в начале программы необходимо подключить библиотеку, что делается командой
import math # подключение модуля библиотеки
После подключения программа получает доступ ко всем функциям, методам и классам, содержащимся в нём. После подключения можно вызвать любую функцию из подключенной библиотеки по следующему правилу: указывается имя модуля и через точку имя функции
имя_модуля.имя_функции
Например, пусть мы хотим вызвать функцию вычисления Синус угла, задаваемого в радианахimport math y = sin(5) # ошибка не подключен модуль mathx = math.sin(5) # записываем имя модуля и через точку имя функции
Можно подключать не весь модуль, а какую-то его часть. Например, программист хочет использовать только одну функцию из математической библиотеки math. Если он подключит всю библиотеку, то будет добавлено более 40 функций, которые будут занимать место. Чтобы добавить в проект какую-то часть, используют ключевое слово from
from <имя подключаемого модуля> import <название функции>
Например.
from math import sin # подключена только одна функция siny = sin(5) # операция выполненаx = cos(5) # ошибка функция cos не подключена
Ниже приведен список основных функций модуля math. Некоторые из перечисленных функций (int, round, abs) являются стандартными и не требуют подключения модуля math для использования.
Модули, библиотеки, import
Язык Python хорош тем, что в него встроено большое количество модулей и библиотек по умолчанию. Более того, их можно дополнительно установить из официального репозитория при помощи команды «pip install название_модуля» в терминале проекта.
Модули (один файл) и библиотеки (несколько файлов с обязательным наличием документа __init__.py) расширяют возможности программистов и упрощают работу. Не нужно создавать велосипед заново, так как его уже кто-то сделал ранее для вас. Нужно лишь им воспользоваться, чтобы добраться из точки А в точку Б.
В нашем коротком курсе мы рассмотрим абсолютный импорт и все его варианты. Имеется и относительный, но он понадобится позже, когда вы начнете разрабатывать сложные проекты.
Итак, в стандартном наборе модулей имеется random, используемый для работы со случайными числами и генерацией оных, выборкой рандомных значений и т.п. Дополнительных установок не потребуется.
Перечислим все способы абсолютного импортирования в Питоне:
Сначала указываем модуль, а потом функцию через точку.
Модуль указывать не требуется.
Модуль указывать не надо, но остальные его функции и переменные недоступны.
«Python» от «Лекториума»
Продолжительность: около 12 часов.
Форма обучения: видеозаписи лекций.
Программа обучения:
- Вступление.
- Управляющие конструкции и основы синтаксиса.
- Встроенные и пользовательские функции.
- Основы ООП.
- Обработка исключений.
- Дополнительные сведения о языке.
- Типизация и метапрограммирование.
- Секреты языка Python. Отличия версий.
- Многопоточное программирование, работа с библиотеками.
- Работа с интернетом.
- Научные модули.
- Расширение функционала.
Чему научитесь:
- освоите синтаксис языка Python;
- изучите принципы ООП;
- научитесь работать с необходимыми библиотеками;
- научитесь работать в Web при помощи языка Python;
- разберётесь с разработкой многопоточных приложений.
- лекции от профессионального преподавателя и практикующего программиста;
- подробное описание без воды;
- в ходе курса студенты научатся разрабатывать полноценные приложения;
- возможность обучения в любое время.
Наследование классов
Вместо того, чтобы начинать с нуля, вы можете создать класс, выведя его из ранее существовавшего класса, перечислив родительский класс в скобках после имени нового класса.
Дочерний класс наследует атрибуты своего родительского класса, и вы можете использовать эти атрибуты, как если бы они были определены в дочернем классе. Дочерний класс также может переопределять элементы данных и методы родительского класса.
Синтаксис
Производные классы объявляются так же, как их родительский класс; однако список базовых классов для наследования дается после имени класса
class SubClassName (ParentClass1): 'Optional class documentation string' class_suite
Пример
#!/usr/bin/python class Parent: # define parent class parentAttr = 100 def __init__(self): print "Calling parent constructor" def parentMethod(self): print 'Calling parent method' def setAttr(self, attr): Parent.parentAttr = attr def getAttr(self): print "Parent attribute :", Parent.parentAttr class Child(Parent): # define child class def __init__(self): print "Calling child constructor" def childMethod(self): print 'Calling child method' c = Child() # instance of child c.childMethod() # child calls its method c.parentMethod() # calls parent's method c.setAttr(200) # again call parent's method c.getAttr() # again call parent's method
Когда приведенный выше код выполняется, он дает следующий результат
Calling child constructor Calling child method Calling parent method Parent attribute : 200
Аналогичным образом вы можете управлять классом из нескольких родительских классов следующим образом:
class A: # define your class A ..... class B: # define your class B ..... class C(A, B): # subclass of A and B .....
Вы можете использовать функции issubclass () или isinstance (), чтобы проверить отношения двух классов и экземпляров.
- Issubclass ( к югу, вир) функция булева возвращает истину , если данный подкласс суб действительно подкласс суперкласса вир .
- Isinstance (объект, класс) Функция булева возвращает истину , если OBJ является экземпляром класса Class или является экземпляром подкласса класса