Дисциплины - Объектно-ориентированное программирование

ООП в Python - Функции

Как и всё остальное в Python, функции - это объекты.

Функция определяется с помощью ключевого слова def.

Определим простейшую функцию:

 def hello():
   print('hello')

Вызов функции осуществляется по имени. Если функция не имеет аргументов, она вызывается с пустыми скопками.

 hello()

Функция может принимать аргументы.

 def vowels(word):
   print word

В таком случае, вызов функции осуществляется с передачей одного аргумента

 vowels('hello word');

Функция может иметь любое количество аргументов любого типа.

Как правило, функция возвращает результат ввиде одного значения, либо коллекции значений упакованных в соответствующую структуру данных.

 def search(word):
   letters = set(word)
   return letters;

В данном случае, функция возвращает множество.

Функция может веруть значение с помощью ключевого слова return. После возврата значения функция больше не выполняется. Какой бы код ни шел после инструкции return, он не будет выполняться.

Имеется возможность объявить аннотации для функции. Аннотации не являются обязательными и носят информационный характер.

Аннотации указывают типы аргументов функции и тип возвращаемого значения функции.

 def search(word:str) -> set:
   letters = set(word)
   return letters

Таким образом мы добавили аннотацию :str, указывающую, что аргументом функции является строка, и аннотацию -> set, которая указывает, что функция возвращает множество.

Подробнее аннотации описываются в PEP 3107 (http://www.python.org/dev/peps/pep-3107).

Функции в Python могут ссылаться на параметры по их именам.  Т.к. у каждого аргумента имеется собственный ключ, то порядок следования аргументов не важен. Рассмотрим функцию с двумя аргументами:

def search(phrase:str, letters:str='aeiou') -> set:

При обращении к такой функции, мы можем поменять аргументы местами, если обращаемся к ним по именам:

search(letters='galaxy', phrase)

С помощью нотации * (звездочка) ункция может принять любое количество аргументов (ноль и более аргументов).

 def myfunc(*args):
  for a in args:
   print(a, end=' ')

Эта функция может быть вызвана с любым количеством аргументов:

 myfunc();
 myfunc(10);
 myfunc(1,2,3,4);

Для того, чтобы передать произвольное количество именованных аргументов, можно использовать нотацию **.

 def myfunc2(**kwards):
  for k,v in kwards.items():
   print(k,v,sep='->', end=' ')

Вызов функции myfunc2 с произвольным количеством именованных аргуметов:

 myfunc2(a=10, b=20);
 myfunc2();
 myfunc2(a=10, b=20, c=30, d=40);

в

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену