Python — это язык со «строгой (сильной) динамической типизацией». Это типизированный язык и в нём нет неявных приведений. Если второй пункт, понимаю, мог был спутан с JavaScript (печально известным своими {} + []), то вот за отсутствием типизации как таковой следует идти в какое-нибудь лямбда-исчисление. В качестве хорошего сравнения можно привести C/C++, где два основных критерия системы типов инвертированы — у них «слабая статическая типизация», что как раз таки позволяет совершать жуткие неявные приведения.
нестрогость языка, которая даёт всё понимать интуитивно в самом начале
Решается поддерживаемой «из коробки» аннотацией типов и использованием нормальной IDE, которая будет показывать все соответствующие ошибки, а напрочь устраняется — линтером и тайп-чекером в CI. И да, благодаря аннотациям хорошо обученная нейросеть сумеет выразить всю суть почти без потерь, упуская лишь всякую оптимизационную магию на низком уровне.
Я не говорю, что надо всё писать на Python, нет, много где он будет плохим выбором, но именно выделенных здесь проблем у него явно нет.
Это полезное наблюдение, вот только основная заслуга в нём не WhatsApp'а и не Paint.NET'а, а самого Excel'я и структуры буфера обмена в Windows, в который при копировании данных помещается не какое-то одно конкретное их представление, а одновременно множество поддерживаемых форматов.
Копирование текста из редактора комментария в Chrome.
Excel добавляет в буфер обмена 20 разных форматов, среди которых также присутствует CF_BITMAP содержащий, собственно, рендер скопированного контента. Именно поэтому, например, любой графический редактор, корректно реализующий копирование/вставку, будет вести себя аналогично. Telegram также предпочитает изображение, но при закрытии окна со вставленной картинкой ещё и предложит текстовое представление.
Копирование таблички 3х2 из Excel 2024.
К слову, около 100 строк на C++ занимает программа, отображающая актуальное изображение из буфера обмена, настолько это просто реализуется.
Полагаю, это сделано для ещё меньшего размера, ведь A вариант принимает кодировку Ansi, которая позволяет уместить строку "edit" в тот самый один long, а вот utf-16, принимаемая W вариантом, с учётом завершающего нуля потребует уже больше места, что выльется в лишние инструкции и константы, увеличив размер программы.
Python — это язык со «строгой (сильной) динамической типизацией». Это типизированный язык и в нём нет неявных приведений. Если второй пункт, понимаю, мог был спутан с JavaScript (печально известным своими
{} + []), то вот за отсутствием типизации как таковой следует идти в какое-нибудь лямбда-исчисление. В качестве хорошего сравнения можно привести C/C++, где два основных критерия системы типов инвертированы — у них «слабая статическая типизация», что как раз таки позволяет совершать жуткие неявные приведения.Решается поддерживаемой «из коробки» аннотацией типов и использованием нормальной IDE, которая будет показывать все соответствующие ошибки, а напрочь устраняется — линтером и тайп-чекером в CI. И да, благодаря аннотациям хорошо обученная нейросеть сумеет выразить всю суть почти без потерь, упуская лишь всякую оптимизационную магию на низком уровне.
Я не говорю, что надо всё писать на Python, нет, много где он будет плохим выбором, но именно выделенных здесь проблем у него явно нет.
Имхо, сформулировано странно. Значения по умолчанию хранятся прямо внутри объекта функции:
И эти же значения можно изменять даже без вызова функции, а пошаманив с
__code__так и вовсе добавлять/удалять сам факт наличия значений по умолчанию:При передаче же аргументов ничего не "создаётся" – уже существующие сущности просто добавляются в словарь локальных переменных:
И, соответственно, если аргумент был передан явно, то его значение по умолчанию внутрь не попадёт:
Это полезное наблюдение, вот только основная заслуга в нём не WhatsApp'а и не Paint.NET'а, а самого Excel'я и структуры буфера обмена в Windows, в который при копировании данных помещается не какое-то одно конкретное их представление, а одновременно множество поддерживаемых форматов.
Excel добавляет в буфер обмена 20 разных форматов, среди которых также присутствует
CF_BITMAPсодержащий, собственно, рендер скопированного контента. Именно поэтому, например, любой графический редактор, корректно реализующий копирование/вставку, будет вести себя аналогично. Telegram также предпочитает изображение, но при закрытии окна со вставленной картинкой ещё и предложит текстовое представление.К слову, около 100 строк на C++ занимает программа, отображающая актуальное изображение из буфера обмена, настолько это просто реализуется.
Полагаю, это сделано для ещё меньшего размера, ведь A вариант принимает кодировку Ansi, которая позволяет уместить строку "edit" в тот самый один long, а вот utf-16, принимаемая W вариантом, с учётом завершающего нуля потребует уже больше места, что выльется в лишние инструкции и константы, увеличив размер программы.