Обновить
@resetmeread⁠-⁠only

Скромный пастух нулей и единиц…

Отправить сообщение
Пока только обновлением. Еще вылезла неприятность, не удается обновиться на XCode 11.1. Ни обновлением, ни с чистой установки не получается. Придется откатываться.

Ядро падает возможно из-за того что ноут свежий MBA 2019. Неужели на нем не дотестировали?

Черт с 32 битными приложениями, пусть они заставят ядро работать нормально. После обновления на Калеку 10.15 постоянно падает при засыпании и ругается на EFI. Каждый день по разу. Я в шоке.

Очепяточка конечно вышла 7.
Забыли Wizardry 8 Crusaders of the Dark Savant. Игра — бомба, которая повлияла очень сильно на жанр RPG.

Вот как просто объяснить джуньорам что code style важен? По моему опыту процентов 90 его игнорируют, начинаешь вводить драконовские меры — начинают хныкать и обижаться. Что делать?

Когда писали старые игры, не думали что пальцем будут тыкать по экрану. Поэтому нужна адаптация под мобильные устройства.

Space Quest, King Quest и Larry это самые лучшие представители жанра. Жду — не дождусь, когда все серии перенесут на телефон. Хотелось бы ещё раз их все пройти.

А если у меня MacOS?
А ещё с одной стороны — вопрос семантики и того, что в питоне тело цикла не создаёт новую область видимости.

Возможно из-за того, что у цикла может быть секция else. Могу ошибаться.

Судя по тому в каких хабах вы состоите на Хабре, вас не особо интересует разработка и языки программирование. Не льстите себе, вряд ли вас возьмут в девелоперскую компанию. Будьте хотя бы честным с самим собой!
Потому что в Py3:
>> type(range(3))
<class 'range'>


А при итерировании этот класс возвращает значение.

Про лямбду сами выше ответили :)
Да за что я должен вас благодарить? По моему, вы своим хамским поведением поставили себя вне дискуссии.
Почему?

Потому что декоратор изменяет функцию один раз.
Зачем?

Чтобы проинициализировать аргументы.

Однако в случае с Питоном, почему-то, вместо того, чтобы назвать вещи своими именами баг пытаются объявить фичей и всех людей, которым это не нравится записывают в ретрограды.

Вы прочитайте про передачу аргументов через * или **, возможно тогда поймете почему так, а не иначе. Странное желание видеть все языки одинаковыми. И пожалуйста, не начинайте демагогию, если вы совершенно не разбираетесь в Python.
Если бы инициализоровались аргументы при каждом вызове, то должна бы работать такая конструкция:

def test(*args, foo=[1]):
    print(args, foo)

Т.е. сколько аргументов не передавай, foo всегда будет проинициализированна, а это тоже самое что вот такой код:
def test(*args):
    foo=[1]
    print(args, foo)

Т.е. какая-то не нужная бессмыслица. Поэтому сейчас выдается SyntaxError.
А вам не кажется что уже этот факт является достаточным для того, чтобы сказать что «современный мир разработки именно что подстраивается под этих людей» — иначе как бы они смогли работать хотя бы джунами или, тем более, дорасти до миддлов?

В моей памяти с десяток примеров когда джун за пару лет превращался в сеньора, а через год уходил в Яндекс, IBM и т.д. А секрет из просто: отличное знание спецификации языка, паттерны, алгоритмы по Кнуту, а для вишенки от
приличный профиль на сайте типа HackerRank. И что странно, ни один из этих людей не жаловался на язык, что он работает как-то не так или что в нем ошибки.

Ну если вашей компании важнее, чтобы человек вызубрил описание языка (а будет ли он при этом уметь что-то ещё — уже не так важно), то это ведь ваш выбор.

Да, это мой выбор, так как я провожу собеседования соискателей. И я не хочу тратить время, чтобы потом вбивать людям терминологию которая принята в языке. Где я работаю, не такие богатые как Google и Microsoft, поэтому тратить деньги на проходимцев никто не будет. Нам нужны люди решающие задачи и проблемы, могущие легко объяснить суть коллеге, а не те кто себя практиковал на нестандартном мышлении.
Потому что в Питоне происходит не присваивание, а связывание, а типы данных бывают изменяемые и неизменяемые.

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

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

Народ во сидит здесь и удивляется, что это ошибка, поверхностно судя и не вникая в суть почему это так работает.
Возможно вы имеете дело с языками для обучения или узкоспециализированными. Возьмите язык широкого применения такой как Rust или Go и попробуйте на нем что-то внятное написать. Я думаю, сразу измените свое мнение.

Я уже не первый год слышу речи на собеседовании подобные вашей. Джунторы поголовно не читают спецификации, из мидлов половина читала. Естественно ни один из нечитающих вряд ли пройдет собеседование.

Сейчас в IT лезет много народа, который хочет только получать деньги, при этом люди совершенно не пытается стать профессионалами хотя бы в том языке на котором они пишут.
Нет, я не против, когда в языке оставляют возможность выстрелить себе в ногу, потому что иногда надо. Но тут слишком близко к поверхности, и описание этого в руководстве не отменяет того, что это не очень хорошее решение в плане дизайна языка.

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

Дизайн языка это компромисс в многих местах. Еще почему сделали единичную инициализацию аргументов по умолчанию, это из-за такого мощного свойства языка Python как развертываний args и kwargs в аргументах функций. Если бы при каждом вызове аргументы инициализировались, то про развертывание аргументов можно было бы забыть.
У вас какое-то устойчивое недопонимание темы. Процессору по барабану какой software design. Он оперирует кодом, а не языком программирования, хотя и использует интерпретаторы и компиляторы чтобы привести код человека в свой понятный. Человеку нужен software design чтобы не запутаться в хитросплетении вызовов, методов и классов.

За что я вас должен благодарить?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность