Всем известно, что Python — интерпретируемый язык программирования. Но это не совсем точно, конечно. Чтобы употреблять такие слова, нужно говорить о какой-то конкретной имплементации языка.Что же, давайте попробуем начать сначала.
Всем известно, что Python — интерпретируемый язык программирования. Но это не совсем точно, конечно. Чтобы употреблять такие слова, нужно говорить о какой-то конкретной имплементации языка.Что же, давайте попробуем начать сначала.
Pandas сегодня является чуть ли не go-to инструментом для решения аналитических задач. Он предоставляет удобный и понятный широкому кругу исследователей интерфейс манипуляции массивами данных. Давай те же посмотрим, что «под капотом» этой библиотеки и за счёт чего происходит такая эффективная работа с данными?
Многие из вас знают, что в Python есть GIL – Global Interpreter Lock, тот самый, который не даёт запускать несколько потоков и нагружать ядра процессора. Отчасти это так, но за GIL в Python скрывается очень много всего.
Многие знают, что Numpy классный и замечательный. А его ndarray позволяют не только удобно обращаться с данными, но также делают это крайне производительно. За счёт чего?
Все мы знаем и любим генераторы в Python. По сути, генератор – это итератор, который можно использовать в цикле, как обычно. Но генератор дополнительно содержит внутри ключевое слово yield.
Безусловно, Python хорош всем. Но иногда всё же хочется немножко побыстрее. Сначала совершаются попытки изменить алгоритмический подход. Но если и этого не хватает, то дело серьёзное, пора засучивать рукава и расчехлять С-компилятор.
При работе с Django часто приходят задачи по изменению стандартного поведения юзера. В большинстве случаев, это заканчивается расширением полей, которое все привыкли делать через 1-1 и отказываются реализовывать по-другому. Но начиная с версии 1.7, Django предоставляет новые механизмы по работе с этим. Их два – AbstractUser и AbstractBaseUser.
Никаких вам фабрик абстрактных классов, интерфейсов и вот этого всего. Есть, конечно, ABC и очумелые ручки, но это совсем другая история. Конечно, есть классы и наследование. Несмотря на это, в Python нет строгого разделения на public/private/protected.
Любой системный администратор ежедневно решает большое количество разнообразных задач, призванных «облегчить жизнь» как ему самому, так и пользователям. Это мониторинг серверов или отдельных процессов, резервное копирование баз данных, просмотр логов с последующей выборкой необходимой информации, настройка и совершенствование системы информационной безопасности, заведение и редактирование пользовательских учетных записей и т.д.
Чтобы написать скрипты, которые помогут автоматизировать большую часть рутинной работы, можно использовать как Bash, так и Python. Что же выбрать?
Какую статью о прохождении технического собеседования не возьми, повсюду трубят:
«Выбирайте для интервью именно тот язык, который наиболее знаком для вас».
Согласитесь, подсознательно возникает желание подыграть интервьюерам. Особенно, когда в диалоге с рекрутером и в пригласительном письме совершенно точно указываются два «рекомендуемых» для прохождения интервью языка.