Форум сайта python.su
ChriztВы знаете, то что Вы описали никоим образом не нуждается в классах.
В идеале, это могло бы выглядеть так: входные данные инициируются в класс на самой верхушке по иерархии, затем этот класс использует другие (не производные) классы для последующей обработки и валидации данных, ну и на выходе получается уже готовый продукт, возвращаемый пользователю.
Офлайн
Virtuos86Важно, как вы думаете, а не - что делаете.
Вы знаете, то что Вы описали никоим образом не нуждается в классах.
Офлайн
Virtuos86Хмм. Представьте себе Текст. Текст - это строка (aka последовательность символов). Текст состоит из Строк, Строки состоят из Слов, Слова состоят из Символов. Символы - это строковые данные.
Вы знаете, то что Вы описали никоим образом не нуждается в классах.
Virtuos86Все мы, программируя что-то, немножко заглядываем в будущее. Я постарался делать так, чтобы данные, всё же, можно было сохранять, в случае, если это понадобится.
не нужно в процессе сохранять промежуточные результаты?
Virtuos86Обалденно! Правда, памяти часто не хватает, чтобы писать и отлаживать код (>10Кб). Но всё же, обалденно!! Спасибо за столь удобную IDE!
P.S.: как пишется в Kaapython?
Virtuos86Вообще-то, я себе для необходимых, но отсутствующих модулей сделал псевдомодуль под названием pseudomodules.py (фактически, это пустые классы, либо с парочкой псевдометодов).
Поскольку тестировать такой код на самом телефоне видимо не возможно, то автодополнение, предполагаю, хромает.
Virtuos86На телефоне автодополнение нужно, в основном, вроде только чтобы меньше печаткать :) С другой стороны, куда полезнее было бы узнавать о возможных/необходимых параметрах функции. В 95% случаев Call Tip не работает.
Можно накатать плагин, который бы дополнял список автодополнения dir'ом нужных библиотек, того же PIL.
Отредактировано (Авг. 27, 2011 15:24:22)
Офлайн
ChriztЭто всё понятно. Я только хочу напомнить прописную истину о том, что и ООП, и процедурное программирование, и функциональное в общем случае это только парадигмы, а не серебряные пули. И если нет конкретного юзкейса к применению какого-либо подхода, говорить что что-то лучше других подходит не стоит. Тем более, что Вы интересовались производительностью решений, а использование классов привносит определенную лишнюю работу, как-то поиск атрибутов и прочая специфичная магия Python-объектов.
Хмм. Представьте себе Текст. Текст - это строка (aka последовательность символов). Текст состоит из Строк, Строки состоят из Слов, Слова состоят из Символов. Символы - это строковые данные.
При этом при всём, текст разбивается на строки, слова и символы по строго определённым правилам, каждая строка, слово или символ имеют свои, ОСОБЫЕ методы и свойства. Вот именно поэтому и нужны были классы.
ChriztЭто снимает часть вопросов.
Все мы, программируя что-то, немножко заглядываем в будущее. Я постарался делать так, чтобы данные, всё же, можно было сохранять, в случае, если это понадобится.
ChriztДобавление фич неминуемо влечет увеличение потребления оперативной памяти. В редакторе проделана серьезная работа на минимизацией подъедания оперативки. За отзыв спасибо, в своё время меня подкупило именно это в Ped, и в развитии редактора я ориентируюсь именно на удобство в использовании.Virtuos86Обалденно! Правда, памяти часто не хватает, чтобы писать и отлаживать код (>10Кб). Но всё же, обалденно!! Спасибо за столь удобную IDE!
Virtuos86 написал:
P.S.: как пишется в Kaapython?
ChriztРешение с модулем в принципе правильное. Другое дело, что я люблю поагитировать пользователей насчет написания индивидуальных плагинов. В Вашем случае достаточно было бы __init__.py плагина прописать одну строчку:Virtuos86Вообще-то, я себе для необходимых, но отсутствующих модулей сделал псевдомодуль под названием pseudomodules.py (фактически, это пустые классы, либо с парочкой псевдометодов).
Virtuos86 написал:
Поскольку тестировать такой код на самом телефоне видимо не возможно, то автодополнение, предполагаю, хромает.
А ещё пришлось, например, написать функцию enumerate(), ведь её нет в 1.4.5, который у меня установлен. Точнее, я откуда-то спёр код этой функции Ещё в 1.4.5 нет, например, функции sum, а так же, не работают конструкции типа “a if b else c” Но это всё - не беда
ChriztCall Tip работает с байткодом функции. Соответственно, если код, содержащий определение функции, ни разу не был запущен на выполнение, нужную информации брать неоткуда. Надо бы наверное, эту возможность довести до ума, я как раз сейчас новую версию потихоньку готовлю к выпуску.Virtuos86На телефоне автодополнение нужно, в основном, вроде только чтобы меньше печаткать С другой стороны, куда полезнее было бы узнавать о возможных/необходимых параметрах функции. В95% случаев Call Tip не работает.
Virtuos86 написал:
Можно накатать плагин, который бы дополнял список автодополнения dir'ом нужных библиотек, того же PIL.
ChriztХм. Структуры данных и без классов писали и пишут. Тем более если есть такой богатый набор стандартных типов данных. Я как-то поднимал этот вопрос в меру своих скромных возможностей в своём бложике.
Резюме: Всё-таки, классы оказались удобнее для меня в данном случае!
STRING = 0
INTEGER = STRING + 1
DICTIONARY = INTEGER + 1
data = ['foo', 1, {}]
print data[STRING], data[INTEGER], data[DICTIONARY]
class data:
string = 'foo'
integer = 1
dictionary = {}
print data.string, data.integer, data.dictionary
Офлайн
Virtuos86…
В чём разница между
Virtuos86Эмм. По мне - так я бы запутался сразу, сходу в первом примере, а вот второй ясен и прозрачен.
в декларативности
?
Офлайн
ChriztЯ такого не мог написать даже будучи в стельку пьяным.
Isem написал:
не нужно в процессе сохранять промежуточные результаты?
Офлайн
IsemДа прдон, ёлы-палы. Кнопочка “Цитировать”, по-видимому, подкачала.
Я такого не мог написать даже будучи в стельку пьяным.
Отредактировано (Авг. 27, 2011 15:25:48)
Офлайн