Функции в python

«Введение в Python» от Hexlet

Продолжительность: 5 часов.

Форма обучения: видеоуроки + тесты + текстовые материалы.

Программа обучения:

  1. Основы синтаксиса.
  2. Типы-коллекции.
  3. Python functions.
  4. Python list comprehensions and generators.
  5. Python yield and iteration in depth.
  6. Python strings.
  7. Юникод в Python.
  8. Форматирование строк.
  9. Логические операторы

Чему научитесь:

  • освоите основы синтаксиса 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 видеозанятий.

Форма обучения: видеоуроки.

Программа обучения:

  1. Начальный урок.
  2. Простые действия.
  3. Работа со строковым типом.
  4. Хранение данных.
  5. Управляющие структуры.
  6. Множественные условия, приоритеты действий.
  7. Циклы.
  8. Списки.
  9. Пользовательские функции.
  10. Комментирование кода.
  11. Модули, Генератор случайных чисел.
  12. Используем модуль метеоданных.
  13. Отслеживание и обработка исключений.
  14. Ввод-вывод в файлы.

Чему научитесь:

  • освоите синтаксис языка 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)

Деление по модулю и присваивание. Этот оператор выполняет сразу три действия:

  1. Делит первый операнд на второй. 
  2. Определяет целое число.
  3. Присваивает это целое число той переменной, которая находится в правом операнде. 

Синтаксис элементарный:

>>> a %= 3

>>> print(a)

Эта программа выполняет три описанных выше действия, после чего получившийся результат печатает в консоли или нижней строке онлайн-интерпретатора. Например, если переменная a = 10, то будет выведено число 3.

Возведение в степень и присваивание. Этот оператор выполняет два действия:

  1. Берет левый операнд и возводит его в степень, равная числу справа.
  2. Получившееся число сразу становится значением переменной слева. 

Здесь, как и в других операторах, можно использовать переменные в качестве правого операнда. Например, если в левой части находится переменная с числом 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 урок.

Форма обучения: видеоуроки + текстовые уроки + практические задания.

Программа курса:

  1. Особенности языка Python.
  2. Установка программного обеспечения.
  3. Создание первой программы.
  4. Переменные и типизация в Python.
  5. Операторы ветвления.
  6. Цикличные конструкции.
  7. Списки.
  8. Индексы и срезы.
  9. Кортежи.
  10. Словари и способы работы с ними.
  11. Множества.
  12. Пользовательские и встроенные функции
  13. Обработка исключений.
  14. Работа с файлами.
  15. Конструкции With — as.
  16. Добавление модулей.
  17. Основы объектно-ориентированного программирования.
  18. Основные концепции ООП.
  19. Конструкторы, переопределение методов.
  20. Декораторы функций.
  21. Завершающий урок.

Чему научитесь:

  • Писать программы на языке 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

Меньше или равно. Проверяет два условия:

  1. Левая часть меньше правой, или нет?
  2. Являются ли левая и правая части одинаковыми.

Если да, она возвращает True. То есть, должно соблюдаться или первое условие или второе.

>>> 7<=7

True

В этом примере мы видим, что число 7 равняется числу 7. Соответственно, программа выводит результат «истина». Ничего удивительного!

Больше или равно. Противоположный предыдущему оператор, возвращающий значение «истина» при соблюдении одного из этих условий:

  1. Два операнда являются одинаковыми.
  2. Первый операнд больше второго.

Синтаксис такой же самый, только вместо знака < используется знак >. Приведем пример для наглядности.

>>> 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 видеоурока.

Форма обучения: видеоуроки.

Программа обучения:

  1. Популярность нейросетей.
  2. Как работают нейросети.
  3. Персептрон.
  4. Алгоритмы обучения нейронных сетей.
  5. Увеличение скорости обучения нейросетей.
  6. Чем опасно и как избежать переобучения?
  7. Функции активации, оценка работы нейросети.
  8. Знакомство с Keras.
  9. Переобучение нейросети.
  10. Описание Batch Normalization.
  11. Принципы действия сверточных нейросетей.
  12. Дополнительные архитектуры нейросетей.
  13. Работа с изображениями.
  14. Раскрашивание графических элементов.
  15. Основы рекуррентных нейросетей.
  16. Прогноз событий.
  17. Глубокие рекуррентные нейронные сети.
  18. Определение и работа с генеративно-состязательными сетями.

Чему научитесь:

  • освоите основы нейронных сетей;
  • научитесь создавать собственные нейронные сети;
  • разберетесь как распознавать знаки и выполнять прочие действия.

Библиотека 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 часов.

Форма обучения: видеозаписи лекций.

Программа обучения:

  1. Вступление.
  2. Управляющие конструкции и основы синтаксиса.
  3. Встроенные и пользовательские функции.
  4. Основы ООП.
  5. Обработка исключений.
  6. Дополнительные сведения о языке.
  7. Типизация и метапрограммирование.
  8. Секреты языка Python. Отличия версий.
  9. Многопоточное программирование, работа с библиотеками.
  10. Работа с интернетом.
  11. Научные модули.
  12. Расширение функционала.

Чему научитесь:

  • освоите синтаксис языка 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 или является экземпляром подкласса класса
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: