Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Параллельное программирование требует тщательной отработки взаимодействия между потоками управления.Некоторые участки кода необходимо ограждать от одновременного
Содержание книги
- authinfo.add_password('My page', 'localhost', 'user1', 'secret')
- Вызвать удаленную функцию print req.add(1, 3)
- from SimpleXMLRPCServer import SimpleXMLRPCServer
- Лекция#10:Работа с базой данных
- Работа с базой данных из python-приложения
- Поддерживаетdb-api 2. 0,а значит,переход на любую другую субд потребует минимальных изменений в вызове функции connect() и,возможно,использования более
- Следующий сценарий создаст таблицу в базе данных(в случае сsqliteзаботиться о создании базы данных не нужно:файл создастся автоматически. Для других баз данных
- c = db.connect(database="tvprogram") cu = c.cursor()
- ОРТ|Новости|Новости|9.15 10.02.2003 9.15|ОРТ|"НЕЖНЫЙ ЯД"|Сериал|10.15
- c = db.connect(database="tvprogram") cu = c.cursor()
- Для СУБДPostgreSQLнужно взять неPyGreSQL,аpsycopg,так как в первом есть
- Лекция#11:Многопоточные вычисления
- Поддержка многопоточности в языкеPythonдоступна через использование ряда модулей.В
- Пример многопоточной программы
- Thread(group, target, name, args, kwargs)
- print "Hello, world!"
- Замки позволяют ограничивать вход в некоторую область программы одним потоком. Замки могут потребоваться для обеспечения целостности структуры данных. Например,если для
- print "Процесс %s запрашивает ресурс %s" % (n, r)
- from threading import BoundedSemaphore maxconnections = 5
- Еще одним способом коммуникации между объектами являются события.Экземпляры
- notify() и notifyAll() другими потоками.Необязательный аргумент timeout
- quot;""Занесение нового элемента в контейнер и оповещение потоков"""
- quot;""Занесение нового элемента в контейнер и оповещение потоков"""
- Следующий пример иллюстрирует параллельность выполнения потоков,используя возможности библиотеки графических примитивов Tkinter(она входит в стандартную
- quot;""Выход из программы"""
- Параллельное программирование требует тщательной отработки взаимодействия между потоками управления.Некоторые участки кода необходимо ограждать от одновременного
- В лекции будет рассматриваться пакетtkinter,который по сути является оберткой дляtcl/tk - известного графического пакета для сценарного языка tcl. На примере этого
- Вхождение курсора в пределы виджета
- Focusin. Получение фокуса окном. Focusout. Keypress. Нажатие клавиши на клавиатуре. Keyrelease. Отжатие клавиши на клавиатуре. Выход курсора за пределы виджета. Motion. Движение мыши в пределах виджета. Mousewheel. Прокрутка колесика мыши. Reparent. Измен
- tk = Tk() # основное окно приложения
- Создание и конфигурирование виджета
- from Tkinter import * tk = Tk()
- При желании можно задать стилевые опции для всех виджетов сразу:с помощью метода tk_setpalette(). Помимо использованных выше свойств в этом методе можно
- from Tkinter import * import urllib
- from Tkinter import * tk = Tk()
- b[1, 3].pack(side=BOTTOM, fill=Y) b[1, 4].pack(side=BOTTOM, fill=BOTH)
- import Tkinter, Image, ImageTk
- start=0, extent=150, fill="blue")
- c.itemconfigure(CURRENT, fill=choice(colors))
- c = Canvas(tk, height=300, bg="white")
- Виджеты располагаются внутри другого виджета(например,рамки)в соответствии с набором правил.Этот набор правил реализуют менеджеры расположения,которых в
- Лекция#13:ИнтеграцияPythonс другими языками
- Py_Finalize(),Py_NewInterpreter(),Py_EndInterpreter(),Py_SetProgramName() и
- include "Python.h" #include "md5.h"
- number of bits, modulo 2^64 (lsb
- return PyString_FromStringAndSize((char *)aDigest, 16);
- MD5_new(PyObject *self, PyObject *args)
- Пример встраивания интерпретатора в программу на C
- Здесь же следует сделать Еще одно замечание:программа,встраивающаяpython,не должна много раз выполнять py_initialize() и py_finalize(),так как это может
- File : freq.i */ %module freq. typemap(out) int * { int i;. result = PyTuple_New(256); for(i=0; i<256; i++). PyTuple_SetItem($result, i, PyLong_FromLong($1[i])); free($1);. extern int * frequency(char s[]);. swig -python freq.i. I/usr/local/lib/python2
Параллельное программирование требует тщательной отработки взаимодействия между потоками управления.Некоторые участки кода необходимо ограждать от одновременного
использования двумя различными потоками,дабы не нарушить целостность изменяемых структур данных или логику работы с внешними ресурсами.Для ограждения участков кода используются замки и семафоры.
Стандартная библиотекаPythonпредоставляет довольно неплохой набор возможностей для многопоточного программирования в модулях threading и thread,а также некоторые
полезные вспомогательные модули(например,Queue).
Лекция#12:Создание приложений с графическим
интерфейсом пользователя
Обзор графических библиотек
Строить графический интерфейс пользователя(GUI,GraphicalUserInterface)для программ на языкеPythonможно при помощи соответствующих библиотек компонентов графического интерфейса или,используя кальку с английского,библиотек виджетов.
Следующий список далеко не полон,но отражает многообразие существующих решений:
· Tkinter Многоплатформенный пакет имеет хорошее управление расположением компонентов.Интерфейс выглядит одинаково на различных платформах(Unix,Windows, Macintosh). Входит в стандартную поставку Python. В качестве документации можно использовать руководство"An Introduction to Tkinter"("Введение в Tkinter"), написанное Фредриком Лундом: http://www.pythonware.com/library/tkinter/introduction/
· wxPython Построен на многоплатформной библиотекеwxWidgets (раньше называласьwxWindows).Выглядит родным для всех платформ,активно совершенствуется,осуществлена поддержкаGL.Имеется для всех основных платформ.Возможно,займет местоTkinterв будущих версияхPython.Сайт:http://www.wxpython.org/
· PyGTK Набор визуальных компонентов дляGTK+иGnome.Только для платформы
GTK.
· PyQT/PyKDE Хорошие пакеты для тех,кто используетQt (подUNIXилиWindows)или
KDE.
· Pythonwin Построен вокругMFC,поставляется вместе с оболочкой в пакетеwin32all;только дляWindows.
· pyFLTK АналогXforms,поддержкаOpenGL.Имеется для платформWindowsиUnix.
Сайт:http://pyfltk.sourceforge.net/
· AWT, JFC, Swing Поставляется вместе сJython,а дляJythonдоступны средства,которые используетJava.Поддерживает платформуJava.
· anygui Независимый от нижележащей платформы пакет для построения графического интерфейса для программ наPython.Сайт:http://anygui.sourceforge.net/
· PythonCard Построитель графического интерфейса,сходный по идеологии с
HyperCard/MetaCard. Разработан на базе wxPython. Сайт: http://pythoncard.sourceforge.net/
Список актуальных ссылок на различные графические библиотеки,доступные изPython,можно найти по следующему адресу:http://phaseit.net/claird/comp.lang.python/python_GUI.html
Библиотеки могут быть многоуровневыми.Например, PythonCardиспользуетwxPython,который,скажем,на платформеLinuxбазируется на многоплатформнойGUI -библиотекеwxWindows, которая, в свою очередь, базируется на GTK+ или на Motif, а те - тоже используют для выводаX Window.Кстати,дляMotifвPythonимеются свои привязки.
|