vir.mirabilis
Янв. 21, 2011 00:49:33
Я пишу программу, в которой будет очень много зависимостей между классами, функциями и условными операторами. Своего рода ИИ, анализирующий схему и на основе анализа выбирающий применяемые функции. Учитывая, что язык интерпретируемый, боюсь что все это будет медленно работать.
Потому вопрос:
1. Отличается ли скорость выполнения
-заданной заранее и после примененной функции
-линейного кода
-метода класса?
И как? Стоит ли выигрыш в скорости усложнения читабельности кода, если писать его линейно?
2. Как сделать объект принадлежащим сразу двум классам, не создавая класс-наследник? Это в принципе возможно?
3. Как лучше считывать большой объем текстовой информации из файла и сортировать ее построчно? Создавать массив, сортировать и заново переписывать не очень разумно. И может ли Питон импортировать из текстового файла переменные без преобразования?
4. К вопросу о массиве. Нужно сортировать строки в файле по убыванию числового значения в начале/середине строки каждый раз перед закрытием файла. Значения изменяются каждый раз при работе программы, плюс добавляются новые строки. Как это реализовать? О_о
5. Можно ли импортировать декораторы?
Заранее спасибо
igor.kaist
Янв. 21, 2011 07:18:50
Говорят, что преждевременная оптимизация это зло. Может стоит написать, а потом искать узкие места, если скорость не устроит?
vir.mirabilis
Янв. 21, 2011 21:33:07
В общем да, просто хочу заранее выбрать более эффективные алгоритмы
gkraser
Янв. 21, 2011 23:42:11
vir.mirabilis
Стоит ли выигрыш в скорости усложнения читабельности кода, если писать его линейно?
Не стоит,пока явно не стоит условие: “Сделать вот этот _работающий_ код быстрее на N%”
vir.mirabilis
Как сделать объект принадлежащим сразу двум классам, не создавая класс-наследник? Это в принципе возможно?
В принципе - возможно все, однако формулировка хотелки несколько выбила меня из колеи. Вроде можно, но причем(!) тут наследник?
vir.mirabilis
И может ли Питон импортировать из текстового файла переменные без преобразования?
да нет наверное…
vir.mirabilis
4. К вопросу о массиве. Нужно сортировать строки в файле по убыванию числового значения в начале/середине строки каждый раз перед закрытием файла. Значения изменяются каждый раз при работе программы, плюс добавляются новые строки. Как это реализовать? О_о
Прочитать данные из файла. Отсортировать. Записать обратно.
vir.mirabilis
Можно ли импортировать декораторы?
можно. Это функции
vir.mirabilis
Янв. 22, 2011 00:09:49
gkraser
В принципе - возможно все, однако формулировка хотелки несколько выбила меня из колеи. Вроде можно, но причем(!) тут наследник?
Ну например, есть 4 класса: class1, class2, class3, class4. Надо создать 4 объекта: A, имеющий все атрибуты class1 и class 2, B имеющий атрибуты class1 и class3, C - class2 и class3 и D имеющий атрибуты class 2 и class4. Как это сделать? О_о
dimabest
Янв. 22, 2011 02:58:44
vir.mirabilis
Как это сделать?
множественное наследование?
Isem
Янв. 22, 2011 04:25:55
А что за класс объекта A? Что он из себя представляет?
Так сделать можно (например, инкапсуляцией и реализацией метода __getattr__, то есть делегирование), но сдается мне, что вы допускаете ошибку проектирования. Не знаю вашу задачу, поэтому не могу сказать конкретно.
uhbif19
Янв. 22, 2011 15:08:24
vir.mirabilis
Напрямую нет. Но чем вас не устраевает множественное наследование ?
vir.mirabilis
Янв. 22, 2011 22:54:27
Нужно чтобы программа сама определяла, является ли соединение органическим или нет (и создавала для него класс) и является ли соединение ионом, радикалом, молекулой и проч.(и добавляла в него атрибуты соответствующего класса). Ну или наоборот. Для органики - свой набор методов, для неорганики - свой, так же и с каждым видом частиц. Есть идея определять при создании объекта приписывать ему класс соответствующей частицы (ион или радикал) и определять тут же метакласс - органика или нет
Андрей Светлов
Янв. 22, 2011 23:31:52
Занятно. Естественная систематизация уже есть.
Метакласс как органика-неорганика кажется, не совсем удачен (может, ошибаюсь - всегда был слаб в химии).
Если есть открытый код - с удовольствием посмотрю.
К слову, классы можно создавать и на лету.