Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2011 00:49:33

vir.mirabilis
От:
Зарегистрирован: 2011-01-03
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

Я пишу программу, в которой будет очень много зависимостей между классами, функциями и условными операторами. Своего рода ИИ, анализирующий схему и на основе анализа выбирающий применяемые функции. Учитывая, что язык интерпретируемый, боюсь что все это будет медленно работать.
Потому вопрос:

1. Отличается ли скорость выполнения
-заданной заранее и после примененной функции
-линейного кода
-метода класса?
И как? Стоит ли выигрыш в скорости усложнения читабельности кода, если писать его линейно?

2. Как сделать объект принадлежащим сразу двум классам, не создавая класс-наследник? Это в принципе возможно?

3. Как лучше считывать большой объем текстовой информации из файла и сортировать ее построчно? Создавать массив, сортировать и заново переписывать не очень разумно. И может ли Питон импортировать из текстового файла переменные без преобразования?

4. К вопросу о массиве. Нужно сортировать строки в файле по убыванию числового значения в начале/середине строки каждый раз перед закрытием файла. Значения изменяются каждый раз при работе программы, плюс добавляются новые строки. Как это реализовать? О_о

5. Можно ли импортировать декораторы?

Заранее спасибо



Отредактировано (Янв. 21, 2011 21:31:57)

Офлайн

#2 Янв. 21, 2011 07:18:50

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

Говорят, что преждевременная оптимизация это зло. Может стоит написать, а потом искать узкие места, если скорость не устроит?



Офлайн

#3 Янв. 21, 2011 21:33:07

vir.mirabilis
От:
Зарегистрирован: 2011-01-03
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

В общем да, просто хочу заранее выбрать более эффективные алгоритмы



Офлайн

#4 Янв. 21, 2011 23:42:11

gkraser
От:
Зарегистрирован: 2007-08-25
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

vir.mirabilis
Стоит ли выигрыш в скорости усложнения читабельности кода, если писать его линейно?
Не стоит,пока явно не стоит условие: “Сделать вот этот _работающий_ код быстрее на N%”
vir.mirabilis
Как сделать объект принадлежащим сразу двум классам, не создавая класс-наследник? Это в принципе возможно?
В принципе - возможно все, однако формулировка хотелки несколько выбила меня из колеи. Вроде можно, но причем(!) тут наследник?
vir.mirabilis
И может ли Питон импортировать из текстового файла переменные без преобразования?
да нет наверное…
vir.mirabilis
4. К вопросу о массиве. Нужно сортировать строки в файле по убыванию числового значения в начале/середине строки каждый раз перед закрытием файла. Значения изменяются каждый раз при работе программы, плюс добавляются новые строки. Как это реализовать? О_о
Прочитать данные из файла. Отсортировать. Записать обратно.
vir.mirabilis
Можно ли импортировать декораторы?
можно. Это функции



Отредактировано (Янв. 21, 2011 23:44:30)

Офлайн

#5 Янв. 22, 2011 00:09:49

vir.mirabilis
От:
Зарегистрирован: 2011-01-03
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

gkraser
В принципе - возможно все, однако формулировка хотелки несколько выбила меня из колеи. Вроде можно, но причем(!) тут наследник?
Ну например, есть 4 класса: class1, class2, class3, class4. Надо создать 4 объекта: A, имеющий все атрибуты class1 и class 2, B имеющий атрибуты class1 и class3, C - class2 и class3 и D имеющий атрибуты class 2 и class4. Как это сделать? О_о



Офлайн

#6 Янв. 22, 2011 02:58:44

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

vir.mirabilis
Как это сделать?
множественное наследование?



Офлайн

#7 Янв. 22, 2011 04:25:55

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

А что за класс объекта A? Что он из себя представляет?
Так сделать можно (например, инкапсуляцией и реализацией метода __getattr__, то есть делегирование), но сдается мне, что вы допускаете ошибку проектирования. Не знаю вашу задачу, поэтому не могу сказать конкретно.



Отредактировано (Янв. 22, 2011 04:29:22)

Офлайн

#8 Янв. 22, 2011 15:08:24

uhbif19
От:
Зарегистрирован: 2010-05-22
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

vir.mirabilis
Напрямую нет. Но чем вас не устраевает множественное наследование ?



Офлайн

#9 Янв. 22, 2011 22:54:27

vir.mirabilis
От:
Зарегистрирован: 2011-01-03
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Скорость работы и оптимизация кода

Нужно чтобы программа сама определяла, является ли соединение органическим или нет (и создавала для него класс) и является ли соединение ионом, радикалом, молекулой и проч.(и добавляла в него атрибуты соответствующего класса). Ну или наоборот. Для органики - свой набор методов, для неорганики - свой, так же и с каждым видом частиц. Есть идея определять при создании объекта приписывать ему класс соответствующей частицы (ион или радикал) и определять тут же метакласс - органика или нет



Офлайн

#10 Янв. 22, 2011 23:31:52

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Скорость работы и оптимизация кода

Занятно. Естественная систематизация уже есть.
Метакласс как органика-неорганика кажется, не совсем удачен (может, ошибаюсь - всегда был слаб в химии).
Если есть открытый код - с удовольствием посмотрю.

К слову, классы можно создавать и на лету.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version