Python для начинающих
Подписаться на эту рубрику по RSS
Модуль threading впервые был представлен в Python 1.5.2 как продолжение низкоуровневого модуля потоков. Модуль threading значительно упрощает работу с потоками и позволяет программировать запуск нескольких операций одновременно. Обратите внимание на то, что потоки в Python лучше всего работают с операциями I/O, такими как загрузка ресурсов из интернета или чтение файлов и папок на вашем компьютере.
Если вам нужно сделать что-то, для чего нужен интенсивный CPU, тогда вам, возможно, захочется взглянуть на модуль multiprocessing, вместо threading. Причина заключается в том, что Python содержит Global Interpreter Lock (GIL), который запускает все потоки внутри главного потока. По этой причине, когда вам нужно запустить несколько интенсивных операций с потоками, вы заметите, что все работает достаточно медленно. Так что мы сфокусируемся на том, в чем потоки являются лучшими: операции I/O.
Небольшое интро
Поток позволяет вам запустить часть длинного кода так, как если бы он был отдельной программой. Это своего рода вызов наследуемого процесса, за исключением того, что вы вызываете функцию или класс, вместо отдельной программы. Я всегда находил конкретные примеры крайне полезными. Давайте взглянем на нечто совершенно простое:
Общей идиомой в программировании является сортировка списка. Python делает эту задачу очень простой благодаря встроенной функции sorted() которая принимает итерируемый тип и возвращает отсортированный список:
1. Стандартная сортировка
a = [3, 2, 5 ,4, 7, 1]
a = sorted(a)
print(a) # [1, 2, 3, 4, 5, 7]
Сортируем кортеж.
t = ('Zane', 'Bob', 'Janet')
t = sorted(t)
print(t) # ['Bob', 'Janet', 'Zane']
Сортировка словаря.
d = {1:'a', 2:'b', 3:'c'}
d = sorted(d)
print(d) # [1, 2, 3]
В этой части обучения wxPython мы постараемся создать простейшие примеры.
Простой пример
Начать следует с самого простого примера. Нашим первым скриптом будет простое отображение небольшого окна. Мы проанализируем каждую линию нашего простейшего скрипта.
#!/usr/bin/python
import wx
app = wx.App()
frame = wx.Frame(None, -1, 'simple.py')
frame.Show()
app.MainLoop()
Это наш первый пример на wxPython.
- Приложения для смартфонов или браузера.
- Добавление слов непосредственно на сайте.
У обеих способов есть недостатки – мы можем вносить слова лишь по одному. Нам же нужно так, чтобы за раз можно было добавить несколько слов.
Многие вебмастеры и владельцы сайтов используют именно Яндекс.Метрику для того, чтобы отслеживать посещаемость сайта. Достаточно сильный инструмент. А в этой статье мы рассмотрим, как с ним можно работать, а точнее упростить работу при помощи Python.
Slack обладает прекрасным потенциалом расширения стандартных возможностей. Но, на практике возникают сложности с интеграцией некоторых соц. сетей в чаты.
Для того, чтобы подружить Вконтакте и Slack мы воспользуемся Python и API. Ниже будет рассматривать базовый рецепт того, как сделать так, чтобы Slack-бот мог получать данные по последним комментариям из постов на стенах сообществ или групп Вконтакте.
В этой статье мы поговорим о решении проблемы настройки окружения для разработки на Django в Windows.
В нашем примере воспользуемся такой связкой:
- Docker-machine.
- PyCharm.
А в Docker-machine используются:
- PostgreSQL.
- Data container для PostgreSQL.
- Redis.
- Непосредственно приложение на Django.
Иногда одного декоратора бывает недостаточно. Для поддержки многоступенчатых расширений синтаксис декораторов позволяет добавлять несколько уровней обертывающей логики к декорируемой функции или методу. При использовании такой возможности каждый декоратор должен указываться в отдельной строке. Синтаксическая конструкция следующего вида:
@AAA
@BBB
@CCC
def function(...):
...
равноценна следующей:
def f(...):
...
f = AAA(BBB(CCC(f)))
Здесь оригинальная функция передается трем различным декораторам, а получившийся в результате вызываемый объект присваивается оригинальному имени. Каждый декоратор обрабатывает результат, возвращаемый предыдущим декоратором, который может быть оригинальной функцией или объектом-оберткой. Если все декораторы возвращают обертки, то при вызове функции по оригинальному имени будет выполнена логика всех трех обертывающих объектов, расширяя возможности функции тремя различными способами.
Последний декоратор в списке будет задействован первым и окажется самым глубоко вложенным.Далее...
Для работы со строками Python предоставляет довольно богатые стандартные средства (и еще более богатые инструменты, включенные в состав стандартной библиотеки).
Прежде всего, это оператор кщ1катенации +. Да, он записывается так же, как оператор арифметического сложения! И работает как с самими строками, так и со строковыми значениями, хранящимися в переменных:Далее...