*** В своей книге «Изучаем Python» (Марк Лутц. Изучаем Python. М., СПб, 2020. Т. 1. С. 523-524. [оригинальное название – Mark Lutz. Learning Python; перевод с английского Ю.Н. Артеменко]) Марк Лутц приводит пример сохранения состояния из объемлющей области видимости Python с помощью стандартного значения, кратко объясняя его. Этот пример очень интересен, поучителен и немного сложноват, а потому заслуживает более подробного разбора. * def f1(): x = 88 def f2(x=x): print(x) f2() f1() *** Этот код...
Слово о ПК и PC, или Хроника рефлексирующего сисадмина
Вариации на тему «Hello, World!» в Python. Вариант 17. Используем вложенные функции (замыкания) и области видимости переменных
*** def f1(): a = 'Hello, World!' def f2(): # Вызываем внутреннюю функцию f3() здесь, где она видна def f3(): print(a) # Явно вызываем тело функции f3(), чтобы сработал print() f3() # Вызываем функцию f2() внутри функции f1(), иначе функция f2() будет недоступна снаружи f2() # Запускаем самую внешнюю функцию f1() *** Этот код демонстрирует три фундаментальные концепции языка Python: вложенные функции (замыкания), области видимости переменных и порядок выполнения кода. В этом варианте переменная a остаётся доступной для чтения благодаря правилам замыкания (closure) языка Python...
Обманчивая простота простой фабричной функции
*** В своей книге «Изучаем Python» (Марк Лутц. Изучаем Python. М., СПб, 2020. Т. 1. С. 520-522. [оригинальное название – Mark Lutz. Learning Python; перевод с английского Ю.Н. Артеменко]) Марк Лутц приводит пример простой фабричной функции (замыкания), кратко объясняя его. Этот пример очень интересен и поучителен, и заслуживает более подробного разбора. *** def maker(N): def action(X): # Создание и возвращение функции action return X ** N # action сохраняет N из объемлющей области видимости...
Ни дня без сбоев, или О Великий, Могучий и Ужасный Яндекс!...
*** …Намедни опять (в который раз!..) Алиса, "живущая" в Яндекс.Станции Лайт 2, самовольно включила – среди ночи! – музыку. На мой вопрос, зачем она сделала это, даёт несколько вариантов ответов (вместо того, чтобы извиниться и сказать, что, видимо, произошёл какой-то сбой!..): – Может быть, вы сами включили её? – Может быть, это сделал кто-то из домашних? – Проверьте настройки, может быть, что-то с настройками… *** У Яндекса нет ни одного ( ! ) устройства, ни одной ( ! ) программы, ни одного ( ! ) сервиса без постоянных (вечных!!!) сбоев и багов!...
