Здравствуйте, Barlog M., Вы писали: BM>1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?
Существуют статические чекеры, но я ни разу не пользовался.
BM>2. Неужели это удобно, иметь возможность написать (по-ошибке): BM>
BM>i = 99
BM>for r in range(0, 5):
BM> i = 6
BM> if i == 99
BM> print(r)
BM>
Да. Помогает понять, когда пора забивать второй косяк.
BM>3. Как узнать (из документации), что возвращает метод: createElement класса Document из xml.dom.minidom?
Прочитать ее медленно и два раза.
BM>Полноценного intellisense нет
Телепатически выяснить, в чем ты пишешь код, не удалось.
BM>с документацией проблемы и т.п.
BM>1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?
Думаю, что нет, так как ряд ошибок принципиально нельзя отловить не выполнив программу.
BM>2. Неужели это удобно, иметь возможность написать (по-ошибке):
Вы про отступы? Тогда надо просто использовать "правильные" редакторы.
BM>3. Как узнать (из документации), что возвращает метод: createElement класса Document из xml.dom.minidom? Стоит-ли надеятся, что в имени функции всегда будет описан возвращаемый тип? (В данном случае возвращается объект класса Element)
Язык динамически типизированный поэтому большого смысла в возвращаемом типе нет.
Здравствуйте, Barlog M., Вы писали:
BM>Три вопроса о python BM>1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?
нет, хотя вот PyDev для Eclipse как то помечает ошибочные конструкции..
BM>2. Неужели это удобно, иметь возможность написать (по-ошибке): BM>
BM>i = 99
BM>for r in range(0, 5):
BM> i = 6
BM> if i == 99
BM> print(r)
BM>
ты про использование i или про забытое двоеточие в if-е?.
в общем, ни то, ни другое не напрягает..
BM>3. Как узнать (из документации), что возвращает метод: createElement класса Document из xml.dom.minidom? Стоит-ли надеятся, что в имени функции всегда будет описан возвращаемый тип? (В данном случае возвращается объект класса Element)
в питоне может вернуться что угодно.. и по дефолту возвращается None..
поэтому описание возвращаемого типа целиком на совести авторов документации..
вообще, там почти всё интуитивно, что согласуется с Дзеном Питона, который можно прочитать, сделав 'import this'..
BM>Вообщем хочется надеяться, что не с того конца я к python'у подхожу. Синтаксис прекрасный, возможности безграничные, библиотеки великолепны. Писал мелкие програмки — всё отлично. Решил использовать в небольшом проекте (5 классов, пара десятков методов, взять данные из БД, перелопатить, сохранить в Excel) — ужас, как неудобно. Полноценного intellisense нет, с документацией проблемы и т.п.
привычка, личные предпочтения..
я многие вещи сначала делаю в интерактивном режиме, а только потом переношу в код скрипта..
Здравствуйте, Barlog M., Вы писали:
BM>Три вопроса о python
BM>1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?
Я использую pychecker. Отлавливает очень много ляпов.
BM>2. Неужели это удобно, иметь возможность написать (по-ошибке): BM>
BM>i = 99
BM>for r in range(0, 5):
BM> i = 6
BM> if i == 99
BM> print(r)
BM>
Ничего не понимаю. В чём вопрос-то?
BM>3. Как узнать (из документации), что возвращает метод: createElement класса Document из xml.dom.minidom? Стоит-ли надеятся, что в имени функции всегда будет описан возвращаемый тип? (В данном случае возвращается объект класса Element)
Не вижу причин для такой формализации. Читать документацию.
BM>Вообщем хочется надеяться, что не с того конца я к python'у подхожу. Синтаксис прекрасный, возможности безграничные, библиотеки великолепны. Писал мелкие програмки — всё отлично. Решил использовать в небольшом проекте (5 классов, пара десятков методов, взять данные из БД, перелопатить, сохранить в Excel) — ужас, как неудобно. Полноценного intellisense нет, с документацией проблемы и т.п.
1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?
2. Неужели это удобно, иметь возможность написать (по-ошибке):
i = 99
for r in range(0, 5):
i = 6
if i == 99
print(r)
3. Как узнать (из документации), что возвращает метод: createElement класса Document из xml.dom.minidom? Стоит-ли надеятся, что в имени функции всегда будет описан возвращаемый тип? (В данном случае возвращается объект класса Element)
Вообщем хочется надеяться, что не с того конца я к python'у подхожу. Синтаксис прекрасный, возможности безграничные, библиотеки великолепны. Писал мелкие програмки — всё отлично. Решил использовать в небольшом проекте (5 классов, пара десятков методов, взять данные из БД, перелопатить, сохранить в Excel) — ужас, как неудобно. Полноценного intellisense нет, с документацией проблемы и т.п.
Т.к. у всех ответивших появились почти одинаковые вопросы (и видно, где ошибся), уточню:
1. В примере кода переопределено i — логическая ошибка, кою отловить тяжело
2. IDE пробовал PyDev, WingIDE, Komodo, Eric (жуть, которая просто виснит, если её оставить в покое минут на пять).
Нигде нет нормального intellisense. Подозреваю, что из-за динамической типизации. Напрмер для PyQt.
Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio.
Здравствуйте, Barlog M., Вы писали:
BM>1. В примере кода переопределено i — логическая ошибка, кою отловить тяжело
да вроде в любом языке есть ошибки, которые отловить сложно..
BM>Подозреваю, что из-за динамической типизации. Напрмер для PyQt.
для PyQt и документации нормальной нету, т.к. питоновского кода в поставке почти (или совсем) нету..
я читаю документацию от самой Qt..
BM>Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio.
врядли такое появится скоро.. динамическая типизация и возможность менять структуру всего на лету мешают..
Здравствуйте, Barlog M., Вы писали:
BM>Т.к. у всех ответивших появились почти одинаковые вопросы (и видно, где ошибся), уточню: BM>1. В примере кода переопределено i — логическая ошибка, кою отловить тяжело
Чет, я торможу — а как должно быть?
если в старом добром паскале написать
i:=1;
for i := 0 to 5 do begin
i:= 100;
if i = 2 then
writeln(i)
end;
будет та же фигня — у i будет каждый раз новый смысл. Причем старые компиляторы на такое даже не ругнулись бы
Здравствуйте, Barlog M., Вы писали: BM>1. В примере кода переопределено i — логическая ошибка, кою отловить тяжело
В том плане, что объявление переменной неотличимо от присвоения ей значения и нет лексической области видимости? Ну... да, такой вот язык. Мне тоже многие подобные вещи в нем не нравятся.
BM>2. IDE пробовал PyDev, WingIDE, Komodo, Eric (жуть, которая просто виснит, если её оставить в покое минут на пять).
NetBeans еще попробуй.
BM>Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio.
А его отсутствие именно в таком виде и правда замедляет работу или просто непривычно? Может, достаточно емакса, а остальное от лукавого?
Здравствуйте, neFormal, Вы писали: BM>>Подозреваю, что из-за динамической типизации. Напрмер для PyQt.
F>для PyQt и документации нормальной нету, т.к. питоновского кода в поставке почти (или совсем) нету.. F>я читаю документацию от самой Qt..
Поставил PyQt инсталлятором, и там есть прекрасная исчерпывающая документация.
Здравствуйте, neFormal, Вы писали:
R>>Поставил PyQt инсталлятором, и там есть прекрасная исчерпывающая документация.
F>а какая ось?. и на какую Qt биндинг?.
Правда вот что там написано: Portions of this documentation have been adapted from the documentation provided with Qt 4.5.1. This document is not an official Nokia document, but is provided with Nokia's permission.
Because this is based on the Qt C++ documentation it still contains C++ code fragments, broken links etc. These will be fixed in future releases.
Здравствуйте, race1, Вы писали:
R>>>Поставил PyQt инсталлятором, и там есть прекрасная исчерпывающая документация. F>>а какая ось?. и на какую Qt биндинг?. R>Win, PyQt 4.5.4
а вот под Gentoo Linux доков нету.. и на сайте я тогда, когда ставил, не нашёл ничего исчерпывающего..
посмотрю что под винду есть..
Здравствуйте, neFormal, Вы писали: F>а вот под Gentoo Linux доков нету. http://wiki.python.org/moin/PyQt4 — погляди ссылки из последнего раздела.
Но вообще да, раздражает, что в некоторых дистрах хамское отношение к /usr/share/doc.
Здравствуйте, neFormal, Вы писали: MC>>http://wiki.python.org/moin/PyQt4 — погляди ссылки из последнего раздела. F>а я их почти все видел, кроме тех, которые "introduction" и "overview"..
Тогда, думаю, в виндовой версии доков не больше.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, neFormal, Вы писали: MC>>>http://wiki.python.org/moin/PyQt4 — погляди ссылки из последнего раздела. F>>а я их почти все видел, кроме тех, которые "introduction" и "overview".. MC>Тогда, думаю, в виндовой версии доков не больше.
Здравствуйте, Mr.Cat, Вы писали:
BM>>Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio. MC>А его отсутствие именно в таком виде и правда замедляет работу или просто непривычно? Может, достаточно емакса, а остальное от лукавого?
А разве нет? Для меня очень сильно — точные названия методов не упомнишь, а параметры и подавно. А с intellisense не-надо постоянно смотреть в документацию.
Здравствуйте, Barlog M., Вы писали: BM>>>Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio. MC>>А его отсутствие именно в таком виде и правда замедляет работу или просто непривычно? Может, достаточно емакса, а остальное от лукавого? BM>А разве нет? Для меня очень сильно — точные названия методов не упомнишь, а параметры и подавно. А с intellisense не-надо постоянно смотреть в документацию.
А фиг его поймет. Сишарп я вот без решарпера даже видеть не могу. А более другие языки нормально редактирую в виме или емаксе с более скромными возможностями автокомплита. То ли привычка, то ли дизайн языка влияет.