Модуль dis и constant folding в Python 3.7
Кратко разбираем особенности constant folding в Python 3.7
Читать статью
Кратко разбираем особенности constant folding в Python 3.7
Читать статью
Teletype
Модуль dis и constant folding в Python 3.7
Разбираем constant folding в Python
Параметры в iter
📌 Обычно built-in функция
📌 Однако, можно передать два параметра. В таком случае, первый параметр должен быть callable-объектом, а второй — результатом вызова первого объекта, на котором нужно остановить итерирование.
Как пример, считывание данных из файла по кускам длины 64, до первого вхождения пустой строчки.
#iter
📌 Обычно built-in функция
iter() возвращает итератор от переданной последовательности.📌 Однако, можно передать два параметра. В таком случае, первый параметр должен быть callable-объектом, а второй — результатом вызова первого объекта, на котором нужно остановить итерирование.
Как пример, считывание данных из файла по кускам длины 64, до первого вхождения пустой строчки.
#iter
Решение #1
Сейчас я объясню как это работает. Когда мы используем оператор
📌 Если наш объект находится слева от оператора, то будет вызываться
📌 Объект
📌 Если вы посмотрите на него второй раз, вы увидите, что он также помогает нам пройти вторую проверку
Сейчас я объясню как это работает. Когда мы используем оператор
+, Python вызывает double underscore метод в зависимости от того, с какой стороны оператора находится наш объект.📌 Если наш объект находится слева от оператора, то будет вызываться
__add__, если он находится справа, будет вызываться __radd__.📌 Объект
Test вернет 0, если вызывается Test () + 1, и 1, если вызывается 1 + Test (). Хитрость в том, что мы перегружаем только один метод, а другой оставляем прежним. Это поможет нам пройти первое условие.📌 Если вы посмотрите на него второй раз, вы увидите, что он также помогает нам пройти вторую проверку
if, потому что мы просто возвращаем ввод, если он не равен 1, поэтому Test () + 2 всегда будет похож на 2 + Test ().Решение #2
Только -7 сработает в данном случае. Никакое другое число не вернет True.
📌 Почему так? В Python целые числа от -5 до 256 имеют заранее выделенные участки в памяти. Когда выполняется какая-либо операция и ее результатом является число из этого промежутка, то вы получаете объект из этого выделенного участка (-5, 256).
📌 Эти объекты являются синглтонами, поэтому оператор
📌 Таким образом, используя -7 вы получите новый экземпляр класса -6 но тот же самый экземпляр класса для -5.
Только -7 сработает в данном случае. Никакое другое число не вернет True.
📌 Почему так? В Python целые числа от -5 до 256 имеют заранее выделенные участки в памяти. Когда выполняется какая-либо операция и ее результатом является число из этого промежутка, то вы получаете объект из этого выделенного участка (-5, 256).
📌 Эти объекты являются синглтонами, поэтому оператор
is возвращает True. Однако, если вы используете целые числа не из этого промежутка, вы получите новый экземпляр класса.📌 Таким образом, используя -7 вы получите новый экземпляр класса -6 но тот же самый экземпляр класса для -5.
Какие языки вы знаете? Можно выбрать несколько.
Anonymous Poll
33%
C/C++
16%
C#
5%
Go
18%
Java
27%
JavaScript
1%
Objective-C
14%
PHP
79%
Python
38%
SQL
18%
Другой
Что новенького?
Недавно один мой знакомый скинул мне интересный пример библиотеки, которая позволяет писать код на C прямо в функциях Python.
Либу я глянул, но мне кое-что не понравилось и поэтому я решил написать свою реализацию подобной библиотеки с использованием
Пока я ковырялся с этим, изучил практически досконально метод
✏️ Например я могу объявить одну функцию, а при ее вызове задать совсем другую логику.
Ссылка на гитхаб
Буду очень рад, если вы подпишетесь/поставите звездочку в гитхабе. Если среди вас есть опытные программисты, то не стесняйтесь вносить правки.
Недавно один мой знакомый скинул мне интересный пример библиотеки, которая позволяет писать код на C прямо в функциях Python.
Либу я глянул, но мне кое-что не понравилось и поэтому я решил написать свою реализацию подобной библиотеки с использованием
ctypes.Пока я ковырялся с этим, изучил практически досконально метод
__call__ и понял что декорирующие классы могут очень сильно менять логику Python.✏️ Например я могу объявить одну функцию, а при ее вызове задать совсем другую логику.
Ссылка на гитхаб
Буду очень рад, если вы подпишетесь/поставите звездочку в гитхабе. Если среди вас есть опытные программисты, то не стесняйтесь вносить правки.
Всем привет!
Как вы знаете, у меня есть еще один проект, который мы назвали @python_academy. И вот, у нас там недавно вышел курс для новичков в Python.
Мы затронем разные темы, от установки интерпретатора, до работы с классами, а в конце напишем небольшой блокчейн-сервис. Такой проект уже можно будет положить в портфолио.
Курс платный, но совсем недорогой. Более подробно узнать о нем можно, написав мне @dartrisen или @a1f20. Если вы хотите как-то поддержать меня и мой проект, то это самый лучший способ.
Спасибо!
Как вы знаете, у меня есть еще один проект, который мы назвали @python_academy. И вот, у нас там недавно вышел курс для новичков в Python.
Мы затронем разные темы, от установки интерпретатора, до работы с классами, а в конце напишем небольшой блокчейн-сервис. Такой проект уже можно будет положить в портфолио.
Курс платный, но совсем недорогой. Более подробно узнать о нем можно, написав мне @dartrisen или @a1f20. Если вы хотите как-то поддержать меня и мой проект, то это самый лучший способ.
Спасибо!
Напоминаю, начало уже завтра. Спустя неделю, все кто хотел, уже будут заливать новый проект к себе на гитхаб.
Может быть именно на него обратят внимание при приглашении на работу?
Может быть именно на него обратят внимание при приглашении на работу?
Forwarded from Python Academy
Содержание и формат нашего курса
После анонсирования курса нам поступило множество вопросов, и мы решили ответить на самые важные на канале.
📅 Формат и время. Все лекции будут проходить по вечерам с 16 по 23 марта в текстовом формате в закрытом канале – максимально удобном для изучения.
📝 Материалы останутся навсегда. В случае, если вы не можете присутствовать во время лекции, вы всегда сможете вернутся к ней позже.
💬 Поддержка. Вы всегда сможете получить помощь и разъяснения в закрытом чате для всех участников.
Начало уже через 4 дня. Успейте записаться: @a1f20 и @dartrisen
После анонсирования курса нам поступило множество вопросов, и мы решили ответить на самые важные на канале.
📅 Формат и время. Все лекции будут проходить по вечерам с 16 по 23 марта в текстовом формате в закрытом канале – максимально удобном для изучения.
📝 Материалы останутся навсегда. В случае, если вы не можете присутствовать во время лекции, вы всегда сможете вернутся к ней позже.
💬 Поддержка. Вы всегда сможете получить помощь и разъяснения в закрытом чате для всех участников.
Начало уже через 4 дня. Успейте записаться: @a1f20 и @dartrisen
Я тут внезапно понял, что наверное засиделся на своем любимом Sublime Text 3. Прикидывал в голове, какие у него могут быть плюсы/минусы и так ничего толкового не смог придумать. Наверное попробую какие-либо другие редакторы.
Каким редактором/IDE пользуетесь?
Anonymous Poll
24%
Sublime Text 3
10%
vim/emacs/nano
4%
Spyder
0%
Rodeo
32%
vs code
48%
PyCharm
15%
Jupyter
8%
Другое/Ответить в чат
GitHub выпустил мобильные приложения
GitHub выпустил бета-версию своего мобильного приложения для Android и iOS еще в ноябре 2019 года. Позавчера компания объявила, что доступна стабильная версия для обеих операционных систем.
Скачать на Android
Скачать на iOS
GitHub выпустил бета-версию своего мобильного приложения для Android и iOS еще в ноябре 2019 года. Позавчера компания объявила, что доступна стабильная версия для обеих операционных систем.
Скачать на Android
Скачать на iOS
Setters & Getters в Python
В Python методы getters и setters немного не такие, как в других языках программирования. По сути, основная цель этих методов заключается в инкапсуляции данных.
Методы
🔸 Для того, чтобы добавить логику проверки при получении доступа к такой переменной;
🔸 Чтобы избежать прямого доступа к атрибуту класса, то есть для того, чтобы эти атрибуты не были доступны напрямую (или изменены внешним пользователем).
В Python методы getters и setters немного не такие, как в других языках программирования. По сути, основная цель этих методов заключается в инкапсуляции данных.
Методы
getter и setter в Python часто используются:🔸 Для того, чтобы добавить логику проверки при получении доступа к такой переменной;
🔸 Чтобы избежать прямого доступа к атрибуту класса, то есть для того, чтобы эти атрибуты не были доступны напрямую (или изменены внешним пользователем).
This media is not supported in your browser
VIEW IN TELEGRAM
Учитель провёл урок геометрии в новой Half-Life Alyx
Некоторые, кому довелось вживую пройти Half-Life Alyx, обнаружили в одной из локаций стекло с лежащими неподалёку цветными маркерами.
🖍️Этими маркерами можно пользоваться и рисовать на стекле всё, что душе угодно. Например, формулы. Чем собственно и воспользовался учитель геометрии из американского города Сан-Диего.
А как в условиях карантина ваши учителя проявляют креативность?
Некоторые, кому довелось вживую пройти Half-Life Alyx, обнаружили в одной из локаций стекло с лежащими неподалёку цветными маркерами.
🖍️Этими маркерами можно пользоваться и рисовать на стекле всё, что душе угодно. Например, формулы. Чем собственно и воспользовался учитель геометрии из американского города Сан-Диего.
А как в условиях карантина ваши учителя проявляют креативность?
Немного переписал свою старую статью по multiprocessing, может быть кому-то будет интересно.
Forwarded from Python Academy
Работа с процессами в Python
С появлением многоядерных процессоров стала общеупотребительной практика распространять нагрузку на все доступные ядра. Существует два основных подхода в распределении нагрузки: использование процессов и потоков. О первом мы как раз сейчас и поговорим.
Читать 6 минут
С появлением многоядерных процессоров стала общеупотребительной практика распространять нагрузку на все доступные ядра. Существует два основных подхода в распределении нагрузки: использование процессов и потоков. О первом мы как раз сейчас и поговорим.
Читать 6 минут
Teletype
Работа с процессами в Python
Начинаем изучать процессы и их реализацию с помощью пакета multiprocessing.