artbear писал(а) 07. Января 2010 :: 12:52:1. в какой среде работаешь, создаешь, отлаживаешь? какой редактор и т.д.?
2. увидел 2 формы, одновременно работающие в одном приложении. Это псевдопараллельность или вполне реальная?
ну т.е. ты в этих формах никакой код по параллельной работе не писал, все автоматом?
Во-первых, я рад, что кому-то стало интересно.
>т.е. ты в этих формах никакой код по параллельной работе не писал, все автоматом
все автоматом. каждая форма ссылается на ее модуль. Модули - на языке Питон и работают в том же контексте что и оболочка (т.е. система). Это имеет и плюсы и минусы. Ну, над минусами можно поработать. Плюсы: Система работает вместе с пользовательскими модулями в одном потоке и контексте, на одном языке, под одной технологией - виджеты, модули, события. Т.е. из любого модуля можно обратится любой части системы - меню, главному окну, и т.д.
class Liss ( QWidget ) :
def __init__ ( self, parent = None ) :
QWidget.__init__ ( self, parent )
self.timer = QTimer ()
self.timer.timeout.connect ( self.NextStep )
...
def start ( self ) :
self.timer.start ( 40 )
def stop ( self ) :
self.timer.stop ()
Qt имеет таймеры, которые можно вешать на любую процедуру Питона. Каждый модуль создает свой таймер, который периодически вызывает процедуру отрисовки.
Питон поддерживает классы, множественное наследование, полиморфизм. Но все методы классов - виртуальные.
Цитата:Любой метод можно переопределить, то есть повторно реализовать в подклассе, как в языке Java (за исключением методов со спецификатором final).
В терминологии языка C++ все методы классов в языке Python являются виртуальными.
Программирование на Python 3. Марк Саммерфилд.
Боюсь, что ничего особенного кроме простоты реализации в том, что я выложил, нет.
Я использую редактор Eric4, тоже написанный на Питон и Кьют.
http://eric-ide.python-projects.org/eric4-download.htmlУстановку (install.py) запустить после установки Python & PyQt4.
В принципе, ничто не мешает программировать хоть в блокноте.
На будущее, можно выбрать из него код и вставить в конфигуратор, к-й надо еще сделать.
Структура системы похоже на 1С. И питон во многом похож на встроенный язык 1С - динамические типы.
Теперь надо делать объекты (Метаданные, Справочник, Документ, ...). Пока что есть только несколько:
m_ - библиотека функций для пользовательских модулей (пока что там только аналог ОткрытьФорму())
Gm - глобальный модуль
m_.Message_Window - окно вывода сообщений ( с поддержкой HTML)
Благодаря стандартной библиотеке питона есть доступ к огромному количеству фич (сеть, сериализация данных, работа с архивами, юникод, работа с большими таблицами).
Там кстати есть модуль Decimal
Цитата:Язык Python предоставляет три типа значений с плавающей точкой: встроенные типы float и complex и тип decimal. Decimal в стандартной библиотеке. Все три типа данных относятся к категории неизменяемых. Тип float представляет числа с плавающей точкой двойной точности, диапазон значений которых зависит от компилятора языка С (или С# или Java), применявшегося для компиляции интерпретатора Python. Числа этого типа имеют ограниченную точность и не могут надежно сравниваться на равенство значений. Числа типа float записываются с десятичной точкой или в экспоненциальной форме записи,
например, 0.0, 4., 5.7, -2.5, -2е9, 8.9е-4.
В машинном представлении числа с плавающей точкой хранятся как двоичные числа. Это означает, что одни дробные значения могут быть представлены точно (такие как 0.5), а другие - только приблизительно
(такие как 0.1 и 0.2). Кроме того, для представления используется фиксированное число битов, поэтому существует ограничение на количество цифр в представлении таких чисел. Ниже приводится поясняющий пример, полученный в IDLE:
>» 0.0, 5.4, -2.5, 8.9е-4
(0.0, 5.4000000000000004, -2.5, 0.00088999999999999995)
Проблема потери точности - это не проблема, свойственная только языку Python; все языки программирования обнаруживают проблему с точным представлением чисел с плавающей точкой.
Если вам действительно необходимо обеспечить высокую точность, можно использовать числа типа decimal. Decimal. Эти числа обеспечивают уровень точности, который вы укажете (по умолчанию 28 знаков после запятой), и могут точно представлять периодические числа, такие как 0.11, но скорость работы с такими числами существенно ниже, чем с обычными числами типа float. Вследствие высокой точности числа типа decimal.Decimal прекрасно подходят для производства финансовых вычислений.
Этот вопрос важен, чтобы иметь точность вычислений (
http://ananas.su/forum/viewtopic.php?f=9&t=158). Наверное придется использовать Decimal для этого. Хотелось бы услышать мнение других.