👍3👎1
Принцип работает, потому что методы всегда можно присваивать классу после того, как он был создан. До тех пор пока присваиваемые методы являются функциями с дополнительным первым аргументом для получения нового экземпляра 𝚜𝚎𝚕𝚏».
Разберем выполнение кода по шагам:
При вызове 𝚇.𝚎𝚐𝚐𝚜() происходит следующее:
− Python автоматически передает экземпляр 𝚇 как первый аргумент в функцию 𝚎𝚐𝚐𝚜𝚏𝚞𝚗𝚌
− Функция получает 𝚘𝚋𝚓 = 𝚇, где 𝚇.𝚟𝚊𝚕𝚞𝚎 = '𝙽𝚒!'
− Выполняется 𝚛𝚎𝚝𝚞𝚛𝚗 𝚘𝚋𝚓.𝚟𝚊𝚕𝚞𝚎 ∗ 𝟺, что дает '𝙽𝚒!' ∗ 𝟺 = '𝙽𝚒!𝙽𝚒!𝙽𝚒!𝙽𝚒!'
Данный аргумент может использоваться для обращения к информации о состоянии, доступной из экземпляра класса, хотя функции определены независимо от класса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1🫡1
Что выведет команда 'python - < showargs.py a b -c'?
Anonymous Quiz
19%
['-', 'a', 'b', '-c']
47%
['showargs.py', 'a', 'b', '-c']
20%
['python', '-', 'a', 'b', '-c']
14%
Error
👍1👎1
Марк Лутц, «Изучаем 𝙿𝚢𝚝𝚑𝚘𝚗», Приложение А тома 2:
«Другие варианты специфицирования формата кода позволяют предоставлять интерпретатору Python код, подлежащий запуску, в самой командной строке (−𝚌) и принимать код из стандартного входного потока (символ − означает чтение из канала или входного потока, перенаправленного в файл)»
Команда «𝚙𝚢𝚝𝚑𝚘𝚗 − < 𝚜𝚑𝚘𝚠𝚊𝚛𝚐𝚜.𝚙𝚢 𝚊 𝚋 −𝚌» работает следующим образом:
В результате:
Поэтому правильный ответ: ['−', '𝚊', '𝚋', '−𝚌']
Это демонстрирует, что при использовании символа «−» для чтения из стандартного входного потока, 𝙿𝚢𝚝𝚑𝚘𝚗 помещает сам символ «−» в качестве первого элемента 𝚜𝚢𝚜.𝚊𝚛𝚐𝚟, а все остальные аргументы командной строки добавляются после него.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤯2👎1
Что означает #!
Anonymous Quiz
13%
Специальный синтаксис для импорта модулей
53%
Ссылка на интерпретатор
12%
Ссылку на .env
21%
Такого не бывает
👍3👎1
Примеры использования:
Символы #! в начале файла называются «𝚜𝚑𝚎𝚋𝚊𝚗𝚐» и служат для указания операционной системе, какой интерпретатор использовать для выполнения данного файла. Это позволяет запускать скрипты напрямую без явного указания интерпретатора.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎1
👍1👎1
Согласно
Ключевой момент: 𝙽𝚊𝙽 значения в 𝚙𝚊𝚗𝚍𝚊𝚜 считаются «больше» любого числового значения при сортировке. Это означает, что:
В нашем примере:
Это поведение согласуется с общей логикой 𝚙𝚊𝚗𝚍𝚊𝚜, где 𝙽𝚊𝙽 рассматривается как «отсутствующее значение» и не участвует в числовых операциях сортировки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1
👍1👎1
Согласно
«Оператор % (модуло) возвращает остаток от деления первого аргумента на второй».
𝚡 % 𝚢 — остаток от 𝚡 / 𝚢
В данном случае:
− 𝟷𝟻 разделить на 𝟺 будет 𝟹 (с остатком 𝟹)
− 𝟷𝟻 = 𝟺 × 𝟹 + 𝟹
Поэтому 𝟷𝟻 % 𝟺 возвращает 𝟹.
👍1👎1
Согласно
𝚏𝚘𝚛_𝚜𝚝𝚖𝚝 ::= "𝚏𝚘𝚛" 𝚝𝚊𝚛𝚐𝚎𝚝_𝚕𝚒𝚜𝚝 "𝚒𝚗" 𝚜𝚝𝚊𝚛𝚛𝚎𝚍_𝚕𝚒𝚜𝚝 ":" 𝚜𝚞𝚒𝚝𝚎
["𝚎𝚕𝚜𝚎" ":" 𝚜𝚞𝚒𝚝𝚎]
Оператор 𝚏𝚘𝚛 используется для итерирования по элементам последовательности (такой как строка, кортеж или список) или другого итерируемого объекта.
Рассмотрим каждый цикл:
Важно отметить, что элементы итерируемого объекта могут быть разных типов — в третьем примере кортеж содержит и числа, и строку, что не является ошибкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Из
𝚜𝚞𝚋𝚜𝚌𝚛𝚒𝚙𝚝𝚒𝚘𝚗 ::= 𝚙𝚛𝚒𝚖𝚊𝚛𝚢 "[" 𝚎𝚡𝚙𝚛𝚎𝚜𝚜𝚒𝚘𝚗_𝚕𝚒𝚜𝚝 "]"
При индексации список 𝚗𝚞𝚖𝚜[𝚒] возвращает 𝚒−й элемент последовательности. Индексы нумеруются с нуля. Это пришло из низкоуровневых языков вроде 𝙲. Там индекс массива — это фактически смещение (𝚘𝚏𝚏𝚜𝚎𝚝) от адреса начала массива в памяти. Первый элемент находится по адресу 𝚋𝚊𝚜𝚎_𝚊𝚍𝚍𝚛𝚎𝚜𝚜 + 𝟶, второй — 𝚋𝚊𝚜𝚎_𝚊𝚍𝚍𝚛𝚎𝚜𝚜 + 𝟷, и так далее. Поэтому индексация с нуля естественна на уровне работы с памятью.
− 𝚗𝚞𝚖𝚜[𝟶] возвращает первый элемент — 𝟷𝟶
− 𝚗𝚞𝚖𝚜[𝟷] возвращает второй элемент — 𝟸𝟶
− 𝚗𝚞𝚖𝚜[𝟸] возвращает третий элемент — 𝟹𝟶
В данном коде создается список из трех элементов: [𝟷𝟶, 𝟸𝟶, 𝟹𝟶]. При обращении 𝚗𝚞𝚖𝚜[𝟷] мы получаем элемент с индексом 𝟷, то есть второй элемент списка, который равен 𝟸𝟶.