Различия между версиями 1 и 2
Версия 1 от 2018-09-24 16:12:40
Размер: 1200
Редактор: FrBrGeorge
Комментарий:
Версия 2 от 2018-09-24 16:23:44
Размер: 2746
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
   * Отличие от функции в строгом смысле (преобразование данных определённого типа в данные (другого?) определённого типа)
Строка 4: Строка 5:
   * функция — это просто объект
   * правда, он `callable()` (но бывают и другие callable-объекты)
    * т. е. объект, который можно ''вызвать'' с помощью `объект()`
   * Какие callable-объекты нам уже известны (например, типы, `bin()`, `print()` и т. п.)
   * Формат задания функции, синтаксически значимый сдвиг
Строка 5: Строка 11:
   * Формальные: имена в описании
   * Фактические: выражения при вызове
Строка 10: Строка 18:
   * Время жизни локальных имён (формальных параметров и собственно локальных имён)
   * `locals()`
   * Загораживание глобальных имён локальными
   * Проблема «побочного эффекта»: разрешать или не разрешать связывание с помощью глобальных имён внутри функции:
    1. Есть связывание ⇒ имя локальное
    1. `global`
Строка 11: Строка 25:
 Д/З:: '''TODO'''
  * /!\ Учебник
  * /!\ Какие-нибудь формулы в функцию
  * /!\ Суперпозиция

Повторное использование кода

  • Функция Python3 как именованный алгоритм
    • Отличие от функции в строгом смысле (преобразование данных определённого типа в данные (другого?) определённого типа)
  • Задание и вызов функции, блок-со-сдвигом
    • функция — это просто объект
    • правда, он callable() (но бывают и другие callable-объекты)

      • т. е. объект, который можно вызвать с помощью объект()

    • Какие callable-объекты нам уже известны (например, типы, bin(), print() и т. п.)

    • Формат задания функции, синтаксически значимый сдвиг
  • Параметры функции
    • Формальные: имена в описании
    • Фактические: выражения при вызове
  • Возвращаемое значение функции
  • Суперпозиция функций
  • «Утиная типизация»: все объекты строго типизированы, но по имени этого не скажешь
    • ⇒ функция выполнится, если все операции в ней применимы к переданным объектам
  • Локальные и глобальные имена, правила видимости
    • Время жизни локальных имён (формальных параметров и собственно локальных имён)
    • locals()

    • Загораживание глобальных имён локальными
    • Проблема «побочного эффекта»: разрешать или не разрешать связывание с помощью глобальных имён внутри функции:
      1. Есть связывание ⇒ имя локальное
      2. global

    • Пример

Д/З

TODO

  • /!\ Учебник

  • /!\ Какие-нибудь формулы в функцию

  • /!\ Суперпозиция

Python/PsyPython2018/03_Functions (последним исправлял пользователь FrBrGeorge 2018-10-02 01:19:18)