Портал Python-программистов : Разное : Флейм http://www.python.com.ua/forum Портал Python-программистов http://backend.userland.com/rss Разное :: Флейм :: Чем ruby более ОО язык чем python? slav0nichttp://www.python.com.ua/forum/viewtopic.php?pid=7339#p7339 7339@http://www.python.com.ua/forum <p>не про ООП, но про руби=) <br /><a href="http://smyck.de/2007/08/15/ruby-faster-than-python-and-perl/#comment-10064">http://smyck.de/2007/08/15/ruby-faster- &hellip; ment-10064</a><br />читаем статью, потом смотрим реальные цифры в комментах)</p> Fri, 17 Aug 2007 12:00:56 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? Clerichttp://www.python.com.ua/forum/viewtopic.php?pid=7330#p7330 7330@http://www.python.com.ua/forum <blockquote><div class="incqbox"><h4>Андрей Светлов написал:</h4><p>В Питоне все - объект. PyObject *.</p></div></blockquote><p>В том то и дело что существует некоторые различия встроенных типов (классовых объектов) и классов определенных средствами языка. В версиях ниже 2.2 разница была более явной, там нельзя было отнаследоватся от встроенных типов. В помощь питонистам того времени в std библиотеку внесли костыли UserDict, UserList... Слава богу ситуация поменялась.<br /><br />Насколько я понимаю рубистов, в руби нет таких различий, например к любому объекту (будь то String или VasyaSuperClass) можно приписывать/удалять методы, в общем там для программиста нет разницы встроенный класс или свой.<br /><br />Вот что пишут в вики:<br /><br /><strong>Невозможность модификации встроенных классов</strong><br /><br />По сравнению с Ruby и некоторыми другими языками в Python отсутствует возможность модифицировать встроенные классы, такие как int, str, float, list и другие, что однако позволяет Python потреблять меньше оперативной памяти и быстрее работать. Дополнительной причиной, проводящей к этому ограничению, является невозможность согласовать такое поведение с модулями расширений. Многие модули используют для ускорения преобразование Python объектов, например int или str, к соответствующим C типам , вместо манипуляций с ними посредством C API.<br />---<br /><br />Плюс ко всему все атрибуты изначально являються закрытыми и насколько я понимаю доступ к ним невозможен, для того чтобы сделать паблик атрибут нужно еще писать getter и setter или делать вот так:</p><div class="codebox"><div class="incqbox"><h4>Код::</h4><div class="scrollbox" style="height: 7.5em"><pre dir="ltr">attr_accessor :firstname # read-write attr_reader :lastname # readonly attr_writter age # writeonly</pre></div></div></div><p>В общем лучшая инкапсуляция<br />(Это точно не python-way, и слава богу)</p> Fri, 17 Aug 2007 02:47:50 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? nsshttp://www.python.com.ua/forum/viewtopic.php?pid=7325#p7325 7325@http://www.python.com.ua/forum <blockquote><div class="incqbox"><h4>Cleric написал:</h4><p>Во многих сравнениях этих языков пишеться что ruby более ОО язык, и то что в python`е НЕ все есть объект в отличии от ruby. Я напиример этого не вижу (разве что в версиях &lt; 2.2)<br />Возможно сравнивали со старыми версиями питона?<br /><br /><span style="color: gray"><br />Понимаю что задавать такие вопросы на форуме по python`у, по меньшей мере странно, оправдаюсь тем что после поиска русскоязычных форумов по ruby, я нашел целый один форум да и то там основном про рельсы.<br /></span></p></div></blockquote><p>Рубисты часто еще вспоминают, что в руби есть приватные/публичные методы, и в руби не нужно повсеместно использовать self.<br /><br /><a href="http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/">http://www.ruby-lang.org/en/documentati &hellip; om-python/</a></p> Thu, 16 Aug 2007 17:29:40 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? ZANhttp://www.python.com.ua/forum/viewtopic.php?pid=7313#p7313 7313@http://www.python.com.ua/forum <blockquote><div class="incqbox"><h4>bialix написал:</h4><p>в руби для получения длины объекта они вызывают метод obj.len(), в то время как питонисты вызывают функцию len(obj)</p></div></blockquote><p>Если использование функций идет в конфликт с религиозными убеждениями программиста :)), можно использовать метод obj.__len__(), который все равно вызывается при вызове функции len( obj ).</p> Thu, 16 Aug 2007 13:28:16 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? Андрей Светловhttp://www.python.com.ua/forum/viewtopic.php?pid=7275#p7275 7275@http://www.python.com.ua/forum <p>Чуть-чуть API и для nose не помешает. Нужно хотя бы знать, как что обзывать :)<br />То, что nose - pythonic, а unittest совсем нет.<br />Соответственно они сильно отличаются по простоте написания и прочтения тестов.<br />Хотя unittest - стандарт. И это его большая заслуга.</p> Wed, 15 Aug 2007 17:35:40 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? j2ahttp://www.python.com.ua/forum/viewtopic.php?pid=7271#p7271 7271@http://www.python.com.ua/forum <blockquote><div class="incqbox"><p>Вспомните хотя бы избитый пример с unittest и тем же nose.</p></div></blockquote><p>Эээм. А про что там? Что unittest нужно API, а nose -- нет?</p> Wed, 15 Aug 2007 17:25:41 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? Андрей Светловhttp://www.python.com.ua/forum/viewtopic.php?pid=7258#p7258 7258@http://www.python.com.ua/forum <p>Я плюшки и упоминать не хотел. В силу того, что у меня они вызывают только очередную порцию смеха.<br />obj.len() vs len(obj) ? Да в Яве нет такого понятия - свободная функция. И что, Ява более ООП язык? Фигушки, как раз наооборот. Pythonic программы на Яве не воспроизводятся. Обратное - легко, хоть и зачастую неэлегантно.<br /><br />Вспомните хотя бы избитый пример с unittest и тем же nose.</p> Wed, 15 Aug 2007 12:51:49 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? bialixhttp://www.python.com.ua/forum/viewtopic.php?pid=7251#p7251 7251@http://www.python.com.ua/forum <p>Самый распространенный пример, который вечно тычут рубисты в лицо питонистам, что в руби для получения длины объекта они вызывают метод obj.len(), в то время как питонисты вызывают функцию len(obj). Короче для них вся разница в плюшках. Меня это абсолютно никак не ущемляет, потому что питон -- мультипарадигменный язык, и насильно пользовать объектную парадигму никто не заставляет. Я на нем начинал писать так, как я пишу на Си. Естественно, это было неоптимально, но программы работали.</p> Wed, 15 Aug 2007 08:56:09 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? Андрей Светловhttp://www.python.com.ua/forum/viewtopic.php?pid=7247#p7247 7247@http://www.python.com.ua/forum <p>В Питоне все - объект. PyObject *.<br />По моему, разница не в этом.<br />В Питоне есть mutable и immutable объекты. list и string, например - очевидно.<br />А еще есть mutable и immutable классы. Тот же класс str неизменяем. На лету можно выполнить настройку только его потомка, а не его самого.<br />Далее. Я в Руби - далеко не спец. Так, смотрел кое что... И мастера, меня, возможно заплюют.<br />Буду говорить о Питоне.<br />У Питона есть довольно жесткие требования на работу с модулями. А именно - на мезанизм их загрузки.<br />Во первых, все попадает в sys.modules. Во вторых, для управления загрузкой можно использовать import hooks. В третьих, перезагрузка модулей очень опасное дело, не подкрепленное как следует языком.<br />import hooks постоянно развиваются, но развитие касается runtime и никак не отражается в языке. Посему - использовать можно, но несколько неочевидно. Для понимания. В общем - модуль, конечно, объект, но очень специфичный.<br />Еще одна больная тема - метаклассы. Сейчас они выглядят вставленными через задний проход (извините). Но при том дают большУю мощь. Я сам использую их регулярно. Но тема явно не проработана. В Python 3000 будет реализован новый подход, куда более стройный.<br />Может быть, я многое упустил. <br />Слышал, что на Руби модули и метаклассы гораздо элегантней.<br />Доказывать или опровергать - не возьмусь.<br />Надеюсь, найдутся люди, которые смогут просветить по данным вопросам.<br />С удовольствием почитаю дальнейшее обсуждение.</p> Wed, 15 Aug 2007 02:42:14 +0300 Разное :: Флейм :: Чем ruby более ОО язык чем python? Clerichttp://www.python.com.ua/forum/viewtopic.php?pid=7246#p7246 7246@http://www.python.com.ua/forum <p>Во многих сравнениях этих языков пишеться что ruby более ОО язык, и то что в python`е НЕ все есть объект в отличии от ruby. Я напиример этого не вижу (разве что в версиях &lt; 2.2)<br />Возможно сравнивали со старыми версиями питона?<br /><br /><span style="color: gray"><br />Понимаю что задавать такие вопросы на форуме по python`у, по меньшей мере странно, оправдаюсь тем что после поиска русскоязычных форумов по ruby, я нашел целый один форум да и то там основном про рельсы.<br /></span></p> Wed, 15 Aug 2007 01:59:03 +0300 Разное :: Флейм :: Первый проектик на Python + PyGTK pentohttp://www.python.com.ua/forum/viewtopic.php?pid=7204#p7204 7204@http://www.python.com.ua/forum <p><strong>slivlen</strong>, спасибо за отзыв!<br /><br />Залью конечно, локально-то оно у меня и так в SVN, в смысле локальный репозиторий&nbsp; =)<br />1. Да вот как раз планирую переписать все с использованием Glade, просто было интересно снала без него сделать<br />2. Я не совсем покапонимаю, зачем, но думаю, что надо будет разобраться с этим новым стилем определения классов в питоне<br />3. Ну это фабрика, она будет в зависимости от использоваемого &quot;сеттера&quot; возвращать его объект. Сейчас только feh<br />По поводу конфига, исправлю.</p> Mon, 13 Aug 2007 20:14:32 +0300 Разное :: Флейм :: Первый проектик на Python + PyGTK slivlenhttp://www.python.com.ua/forum/viewtopic.php?pid=7203#p7203 7203@http://www.python.com.ua/forum <p>Залил бы чтоль проект в svn :) А что касается программы, то ИМХО <br />1) лучше было использовать glade для создания интерфейса<br />2) наследуй классы от object<br />3) не понятно зачем нужен get_background_setter<br />4) Вместо </p><div class="codebox"><div class="incqbox"><h4>Код: python:</h4><div class="scrollbox" style="height: 4.5em"><pre dir="ltr">CONFIG_FILE = <span style="color: #dc143c;">os</span>.<span style="color: black;">environ</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'HOME'</span><span style="color: black;">&#93;</span> + <span style="color: #483d8b;">"/"</span> + <span style="color: #483d8b;">".oboinusrc"</span></pre></div></div></div><p>можно было написать так:</p><div class="codebox"><div class="incqbox"><h4>Код: python:</h4><div class="scrollbox" style="height: 4.5em"><pre dir="ltr">CONFIG_FILE = <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">expanduser</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'~/.oboinusrc'</span><span style="color: black;">&#41;</span></pre></div></div></div> Mon, 13 Aug 2007 20:07:04 +0300 Разное :: Флейм :: Первый проектик на Python + PyGTK pentohttp://www.python.com.ua/forum/viewtopic.php?pid=7200#p7200 7200@http://www.python.com.ua/forum <p>Решил таки написать удобный установщик обоев на раб. стол для WM, в данном случае IceWM.<br />Бета уже готова. Написана на Python + PyGTK.<br />Умеет устанавливать на раб. стол обои (враппер на feh, но добавить другие установщики - не проблема) и восстанавливать их из конфига - удобно для записи в стартовый скрипт:</p><div class="codebox"><div class="incqbox"><h4>Код::</h4><div class="scrollbox" style="height: 4.5em"><pre dir="ltr">/home/spec/bin/oboinus --restore &</pre></div></div></div><p><a href="http://code.google.com/p/oboinus/">http://code.google.com/p/oboinus/</a><br /></p><blockquote><div class="incqbox"><p>Oboinus - X11 background previewer and setter<br /><br />In normal working mode, it provides an interface which helps you to choose picture to be setted as background. When the --restore option is passed, oboinus sets background that it has a configuration for and exits immediatly, for use in an .xinitrc/.xsession or your WM startup files.</p></div></blockquote><p>У кого есть время поругать 374 строки кода - пожалуйста :)<br /><br />Скриншот:<br /><a href="http://www.linux.org.ru/profile/pento/view-message.jsp?msgid=2082599">http://www.linux.org.ru/profile/pento/v &hellip; id=2082599</a></p> Mon, 13 Aug 2007 19:21:06 +0300 Разное :: Флейм :: JQuery Cyxapeffhttp://www.python.com.ua/forum/viewtopic.php?pid=7141#p7141 7141@http://www.python.com.ua/forum <p>Не знаю где спросить, спрошу тут. Может кто работал с этой библиотечкой.<br /><br />Ajax'ом получаю xml:<br /></p><div class="codebox"><div class="incqbox"><h4>Код::</h4><div class="scrollbox" style="height: 22.5em"><pre dir="ltr">&lt;?xml version=&quot;1.0&quot;&nbsp;encoding=&quot;UTF-8&quot;?&gt; &lt;chanal&gt; &lt;title id=2 slug=&quot;sport&quot;&gt;Спорт&lt;/title&gt; &lt;programs&gt; &lt;program time=&quot;22:40&quot;&gt;Футбол. (Кубок УЕФА. 1-й квалификационный раунд. Прямая трансляция)&lt;/program&gt; &lt;program time=&quot;00:40&quot;&gt;Точка отрыва&lt;/program&gt; &lt;program time=&quot;01:10&quot;&gt;Дневник летней Универсиады&lt;/program&gt; &lt;program time=&quot;01:45&quot;&gt;Вести - спорт&lt;/program&gt;<br />&lt;program time=&quot;01:50&quot;&gt;Стендовая стрельба. (Чемпионат России)&lt;/program&gt; &lt;program time=&quot;02:20&quot;&gt;III летняя Спартакиада учащихся России&lt;/program&gt; &lt;program time=&quot;04:15&quot;&gt;Сборная России. (Алексей Мишин)&lt;/program&gt; &lt;program time=&quot;04:55&quot;&gt;Футбол. (Кубок РЖД. Финал)&lt;/program&gt; &lt;/programs&gt; &lt;/chanal&gt;</pre></div></div></div><p>Выполняется функция:<br /></p><div class="codebox"><div class="incqbox"><h4>Код::</h4><div class="scrollbox" style="height: 9em"><pre dir="ltr">function successAddChanal(xml) { title = $("/chanal/title", xml); alert(title.text()); }</pre></div></div></div><p>Которая рисует undefined.<br /><br />Чего я делаю не правильно?</p> Fri, 10 Aug 2007 21:00:48 +0300 Разное :: Флейм :: Stackless Python Андрей Светловhttp://www.python.com.ua/forum/viewtopic.php?pid=7039#p7039 7039@http://www.python.com.ua/forum <p>Писал я на нем.<br />Во первых - на 5% медленней обычного Питона.<br />Во вторых - Ева писана таки еще и на С++. Критический код - на плюсах. И stackless тут не при чем.<br />Он позволяет заводить тасклеты и каналы взаимодействия между ними. Переключение между потоками - явное.<br />Т.е. невытесняющая многопоточка. Поскольку потоки не системные - их можно держать хоть миллион.<br /><br />Минусы:<br /> - необходимость использовать явное переключение потоков.<br /> - нужно использовать специализированную версию Питона. И меня вроде бы все работало нормально. Знакомые жаловались на проблемы с некоторыми extesion modules и stackless.<br /> <br />Есть проект py.greenlet из py lib, который делает то же - но на обычном Питоне.<br /><br />И, самое главное, с генераторами из 2.5 создание специализированных вещей кажется ненужным. Все можно сделать на них.<br />ИМХО.</p> Tue, 07 Aug 2007 20:12:41 +0300