Форум сайта python.su
Я пишу программу, в которой будет очень много зависимостей между классами, функциями и условными операторами. Своего рода ИИ, анализирующий схему и на основе анализа выбирающий применяемые функции. Учитывая, что язык интерпретируемый, боюсь что все это будет медленно работать.
Потому вопрос:
1. Отличается ли скорость выполнения
-заданной заранее и после примененной функции
-линейного кода
-метода класса?
И как? Стоит ли выигрыш в скорости усложнения читабельности кода, если писать его линейно?
2. Как сделать объект принадлежащим сразу двум классам, не создавая класс-наследник? Это в принципе возможно?
3. Как лучше считывать большой объем текстовой информации из файла и сортировать ее построчно? Создавать массив, сортировать и заново переписывать не очень разумно. И может ли Питон импортировать из текстового файла переменные без преобразования?
4. К вопросу о массиве. Нужно сортировать строки в файле по убыванию числового значения в начале/середине строки каждый раз перед закрытием файла. Значения изменяются каждый раз при работе программы, плюс добавляются новые строки. Как это реализовать? О_о5. Можно ли импортировать декораторы?
Заранее спасибо
Отредактировано (Янв. 21, 2011 21:31:57)
Офлайн
Говорят, что преждевременная оптимизация это зло. Может стоит написать, а потом искать узкие места, если скорость не устроит?
Офлайн
В общем да, просто хочу заранее выбрать более эффективные алгоритмы
Офлайн
vir.mirabilisНе стоит,пока явно не стоит условие: “Сделать вот этот _работающий_ код быстрее на N%”
Стоит ли выигрыш в скорости усложнения читабельности кода, если писать его линейно?
vir.mirabilisВ принципе - возможно все, однако формулировка хотелки несколько выбила меня из колеи. Вроде можно, но причем(!) тут наследник?
Как сделать объект принадлежащим сразу двум классам, не создавая класс-наследник? Это в принципе возможно?
vir.mirabilisда нет наверное…
И может ли Питон импортировать из текстового файла переменные без преобразования?
vir.mirabilisПрочитать данные из файла. Отсортировать. Записать обратно.
4. К вопросу о массиве. Нужно сортировать строки в файле по убыванию числового значения в начале/середине строки каждый раз перед закрытием файла. Значения изменяются каждый раз при работе программы, плюс добавляются новые строки. Как это реализовать? О_о
vir.mirabilisможно. Это функции
Можно ли импортировать декораторы?
Отредактировано (Янв. 21, 2011 23:44:30)
Офлайн
gkraserНу например, есть 4 класса: class1, class2, class3, class4. Надо создать 4 объекта: A, имеющий все атрибуты class1 и class 2, B имеющий атрибуты class1 и class3, C - class2 и class3 и D имеющий атрибуты class 2 и class4. Как это сделать? О_о
В принципе - возможно все, однако формулировка хотелки несколько выбила меня из колеи. Вроде можно, но причем(!) тут наследник?
Офлайн
vir.mirabilisмножественное наследование?
Как это сделать?
Офлайн
А что за класс объекта A? Что он из себя представляет?
Так сделать можно (например, инкапсуляцией и реализацией метода __getattr__, то есть делегирование), но сдается мне, что вы допускаете ошибку проектирования. Не знаю вашу задачу, поэтому не могу сказать конкретно.
Отредактировано (Янв. 22, 2011 04:29:22)
Офлайн
vir.mirabilisНапрямую нет. Но чем вас не устраевает множественное наследование ?
Офлайн
Нужно чтобы программа сама определяла, является ли соединение органическим или нет (и создавала для него класс) и является ли соединение ионом, радикалом, молекулой и проч.(и добавляла в него атрибуты соответствующего класса). Ну или наоборот. Для органики - свой набор методов, для неорганики - свой, так же и с каждым видом частиц. Есть идея определять при создании объекта приписывать ему класс соответствующей частицы (ион или радикал) и определять тут же метакласс - органика или нет
Офлайн
Занятно. Естественная систематизация уже есть.
Метакласс как органика-неорганика кажется, не совсем удачен (может, ошибаюсь - всегда был слаб в химии).
Если есть открытый код - с удовольствием посмотрю.
К слову, классы можно создавать и на лету.
Офлайн