👍1👎1👏1🖕1
Марк Лутц «Изучаем Python», глава 40:
«И наоборот, если этот дескриптор не определяет __𝚜𝚎𝚝__, то имя в словаре экземпляра скроет имя в классе согласно нормальному наследованию».
В коде происходит следующее:
>>> 𝙸.𝚍 # Доступ к унаследованному дескриптору не данных
__𝚐𝚎𝚝__
>>> 𝙸.__𝚍𝚒𝚌𝚝__['𝚍'] = '𝚜𝚙𝚊𝚖'
>>> 𝙸.𝚍 # Скрываем имя в классе согласно правилам нормального наследования экземпляров
'𝚜𝚙𝚊𝚖'
Это отличается от дескрипторов данных, которые перекрывают имена в словаре экземпляра благодаря наличию метода __𝚜𝚎𝚝__.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡2👍1👎1
👍2👎1
Марк Лутц «Изучаем Python», глава 40:
В данном случае:
Методы метаклассов предназначены для управления данными уровня класса и доступны непосредственно на уровне класса без необходимости явного объявления ссылок.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👎2
👍1👎1
Принцип работает, потому что методы всегда можно присваивать классу после того, как он был создан. До тех пор пока присваиваемые методы являются функциями с дополнительным первым аргументом для получения нового экземпляра 𝚜𝚎𝚕𝚏».
Разберем выполнение кода по шагам:
При вызове 𝚇.𝚎𝚐𝚐𝚜() происходит следующее:
− Python автоматически передает экземпляр 𝚇 как первый аргумент в функцию 𝚎𝚐𝚐𝚜𝚏𝚞𝚗𝚌
− Функция получает 𝚘𝚋𝚓 = 𝚇, где 𝚇.𝚟𝚊𝚕𝚞𝚎 = '𝙽𝚒!'
− Выполняется 𝚛𝚎𝚝𝚞𝚛𝚗 𝚘𝚋𝚓.𝚟𝚊𝚕𝚞𝚎 ∗ 𝟺, что дает '𝙽𝚒!' ∗ 𝟺 = '𝙽𝚒!𝙽𝚒!𝙽𝚒!𝙽𝚒!'
Данный аргумент может использоваться для обращения к информации о состоянии, доступной из экземпляра класса, хотя функции определены независимо от класса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1🫡1
Что выведет команда 'python - < showargs.py a b -c'?
Anonymous Quiz
21%
['-', 'a', 'b', '-c']
47%
['showargs.py', 'a', 'b', '-c']
17%
['python', '-', 'a', 'b', '-c']
15%
Error
👍1👎1
Марк Лутц, «Изучаем 𝙿𝚢𝚝𝚑𝚘𝚗», Приложение А тома 2:
«Другие варианты специфицирования формата кода позволяют предоставлять интерпретатору Python код, подлежащий запуску, в самой командной строке (−𝚌) и принимать код из стандартного входного потока (символ − означает чтение из канала или входного потока, перенаправленного в файл)»
Команда «𝚙𝚢𝚝𝚑𝚘𝚗 − < 𝚜𝚑𝚘𝚠𝚊𝚛𝚐𝚜.𝚙𝚢 𝚊 𝚋 −𝚌» работает следующим образом:
В результате:
Поэтому правильный ответ: ['−', '𝚊', '𝚋', '−𝚌']
Это демонстрирует, что при использовании символа «−» для чтения из стандартного входного потока, 𝙿𝚢𝚝𝚑𝚘𝚗 помещает сам символ «−» в качестве первого элемента 𝚜𝚢𝚜.𝚊𝚛𝚐𝚟, а все остальные аргументы командной строки добавляются после него.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1🤯1
Что означает #!
Anonymous Quiz
11%
Специальный синтаксис для импорта модулей
59%
Ссылка на интерпретатор
13%
Ссылку на .env
17%
Такого не бывает
👍1👎1
Примеры использования:
Символы #! в начале файла называются «𝚜𝚑𝚎𝚋𝚊𝚗𝚐» и служат для указания операционной системе, какой интерпретатор использовать для выполнения данного файла. Это позволяет запускать скрипты напрямую без явного указания интерпретатора.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1
Когда хотел просто поиграть, но случайно спас марсианскую базу…
Советуем пройти космическую одиссею, которую сделали вместе с «МойОфис». Всего 10 минут, три локации и задачки по Go, которые под силу трушному гоферу. В общем, некогда объяснять — срочно помогите главным героям спасти марсианских колонизаторов.
Кстати, первые 10 игроков с максимальным результатом получат тематические подарки: комплект космической еды и крутой мерч.
Запрыгивайте в квест: https://tprg.ru/EdHP
Реклама
Советуем пройти космическую одиссею, которую сделали вместе с «МойОфис». Всего 10 минут, три локации и задачки по Go, которые под силу трушному гоферу. В общем, некогда объяснять — срочно помогите главным героям спасти марсианских колонизаторов.
Кстати, первые 10 игроков с максимальным результатом получат тематические подарки: комплект космической еды и крутой мерч.
Запрыгивайте в квест: https://tprg.ru/EdHP
Реклама