[python] Три вопроса о python
От: Barlog M. Россия  
Дата: 25.11.09 19:10
Оценка:
Три вопроса о python

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 нет, с документацией проблемы и т.п.
Re: [python] Три вопроса о python
От: Курилка Россия http://kirya.narod.ru/
Дата: 25.11.09 19:34
Оценка: 1 (1)
Здравствуйте, Barlog M., Вы писали:

BM>Три вопроса о python


BM>1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?


pylint?

BM>2. Неужели это удобно, иметь возможность написать (по-ошибке):

BM>
BM>i = 99

BM>for r in range(0, 5):
BM>    i = 6
BM>    if i == 99
BM>        print(r)
BM>


И в чём именно тут ошибка? Точнее, что должно быть на самом деле?
Re: [python] Три вопроса о python
От: DemAS http://demas.me
Дата: 25.11.09 19:35
Оценка: 1 (1)
BM>1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?

Думаю, что нет, так как ряд ошибок принципиально нельзя отловить не выполнив программу.

BM>2. Неужели это удобно, иметь возможность написать (по-ошибке):


Вы про отступы? Тогда надо просто использовать "правильные" редакторы.

BM>3. Как узнать (из документации), что возвращает метод: createElement класса Document из xml.dom.minidom? Стоит-ли надеятся, что в имени функции всегда будет описан возвращаемый тип? (В данном случае возвращается объект класса Element)


Язык динамически типизированный поэтому большого смысла в возвращаемом типе нет.
Re: [python] Три вопроса о python
От: neFormal Россия  
Дата: 25.11.09 19:38
Оценка: 1 (1)
Здравствуйте, 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 нет, с документацией проблемы и т.п.


привычка, личные предпочтения..
я многие вещи сначала делаю в интерактивном режиме, а только потом переношу в код скрипта..
...coding for chaos...
Re: [python] Три вопроса о python
От: Mr.Cat  
Дата: 25.11.09 19:47
Оценка: 1 (1) :))
Здравствуйте, 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>с документацией проблемы и т.п.

Re: [python] Три вопроса о python
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 25.11.09 22:22
Оценка: 1 (1)
Здравствуйте, 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 нет, с документацией проблемы и т.п.


Есть много неплохих IDE.
The God is real, unless declared integer.
Re: [python] Три вопроса о python
От: Barlog M. Россия  
Дата: 26.11.09 03:13
Оценка:
Здравствуйте, Barlog M., Вы писали:

Т.к. у всех ответивших появились почти одинаковые вопросы (и видно, где ошибся), уточню:
1. В примере кода переопределено i — логическая ошибка, кою отловить тяжело
2. IDE пробовал PyDev, WingIDE, Komodo, Eric (жуть, которая просто виснит, если её оставить в покое минут на пять).
Нигде нет нормального intellisense. Подозреваю, что из-за динамической типизации. Напрмер для PyQt.

Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio.

pylint и pychecker посмотрю, спасибо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1270>>
Re[2]: [python] Три вопроса о python
От: neFormal Россия  
Дата: 26.11.09 05:59
Оценка:
Здравствуйте, Barlog M., Вы писали:

BM>1. В примере кода переопределено i — логическая ошибка, кою отловить тяжело


да вроде в любом языке есть ошибки, которые отловить сложно..

BM>Подозреваю, что из-за динамической типизации. Напрмер для PyQt.


для PyQt и документации нормальной нету, т.к. питоновского кода в поставке почти (или совсем) нету..
я читаю документацию от самой Qt..

BM>Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio.


врядли такое появится скоро.. динамическая типизация и возможность менять структуру всего на лету мешают..
...coding for chaos...
Re[2]: [python] Три вопроса о python
От: jhfrek Россия  
Дата: 26.11.09 10:21
Оценка:
Здравствуйте, 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 будет каждый раз новый смысл. Причем старые компиляторы на такое даже не ругнулись бы
Re[2]: [python] Три вопроса о python
От: Mr.Cat  
Дата: 26.11.09 17:03
Оценка:
Здравствуйте, Barlog M., Вы писали:
BM>1. В примере кода переопределено i — логическая ошибка, кою отловить тяжело
В том плане, что объявление переменной неотличимо от присвоения ей значения и нет лексической области видимости? Ну... да, такой вот язык. Мне тоже многие подобные вещи в нем не нравятся.

BM>2. IDE пробовал PyDev, WingIDE, Komodo, Eric (жуть, которая просто виснит, если её оставить в покое минут на пять).

NetBeans еще попробуй.

BM>Что подразумеваю под нормальным? Например для Java в Eclipse, для C# в Visual Studio.

А его отсутствие именно в таком виде и правда замедляет работу или просто непривычно? Может, достаточно емакса, а остальное от лукавого?
Re[3]: [python] Три вопроса о python
От: race1 Россия  
Дата: 27.11.09 07:36
Оценка:
Здравствуйте, neFormal, Вы писали:
BM>>Подозреваю, что из-за динамической типизации. Напрмер для PyQt.

F>для PyQt и документации нормальной нету, т.к. питоновского кода в поставке почти (или совсем) нету..

F>я читаю документацию от самой Qt..

Поставил PyQt инсталлятором, и там есть прекрасная исчерпывающая документация.
Re: [python] Три вопроса о python
От: FR  
Дата: 27.11.09 11:05
Оценка:
Здравствуйте, Barlog M., Вы писали:

BM>1. Можно-ли как-либо узнать, правильный синтаксис у кода или нет, не выполняя его?


python -c "import py_compile; py_compile.compile('source.py')"
Re[4]: [python] Три вопроса о python
От: neFormal Россия  
Дата: 27.11.09 14:38
Оценка:
Здравствуйте, race1, Вы писали:

R>Поставил PyQt инсталлятором, и там есть прекрасная исчерпывающая документация.


а какая ось?. и на какую Qt биндинг?.
...coding for chaos...
Re[5]: [python] Три вопроса о python
От: race1 Россия  
Дата: 27.11.09 14:42
Оценка:
Здравствуйте, neFormal, Вы писали:

R>>Поставил PyQt инсталлятором, и там есть прекрасная исчерпывающая документация.


F>а какая ось?. и на какую Qt биндинг?.


Win, PyQt 4.5.4
Re[6]: [python] Три вопроса о python
От: race1 Россия  
Дата: 27.11.09 14:44
Оценка:
Правда вот что там написано: 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.

Re[6]: [python] Три вопроса о python
От: neFormal Россия  
Дата: 27.11.09 15:26
Оценка:
Здравствуйте, race1, Вы писали:

R>>>Поставил PyQt инсталлятором, и там есть прекрасная исчерпывающая документация.

F>>а какая ось?. и на какую Qt биндинг?.
R>Win, PyQt 4.5.4

а вот под Gentoo Linux доков нету.. и на сайте я тогда, когда ставил, не нашёл ничего исчерпывающего..
посмотрю что под винду есть..
...coding for chaos...
Re[7]: [python] Три вопроса о python
От: Mr.Cat  
Дата: 27.11.09 15:34
Оценка:
Здравствуйте, neFormal, Вы писали:
F>а вот под Gentoo Linux доков нету.
http://wiki.python.org/moin/PyQt4 — погляди ссылки из последнего раздела.
Но вообще да, раздражает, что в некоторых дистрах хамское отношение к /usr/share/doc.
Re[8]: [python] Три вопроса о python
От: neFormal Россия  
Дата: 27.11.09 16:01
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

F>>а вот под Gentoo Linux доков нету.

MC>http://wiki.python.org/moin/PyQt4 — погляди ссылки из последнего раздела.

а я их почти все видел, кроме тех, которые "introduction" и "overview"..
...coding for chaos...
Re[9]: [python] Три вопроса о python
От: Mr.Cat  
Дата: 27.11.09 16:02
Оценка:
Здравствуйте, neFormal, Вы писали:
MC>>http://wiki.python.org/moin/PyQt4 — погляди ссылки из последнего раздела.
F>а я их почти все видел, кроме тех, которые "introduction" и "overview"..
Тогда, думаю, в виндовой версии доков не больше.
Re[10]: [python] Три вопроса о python
От: race1 Россия  
Дата: 27.11.09 16:19
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, neFormal, Вы писали:

MC>>>http://wiki.python.org/moin/PyQt4 — погляди ссылки из последнего раздела.
F>>а я их почти все видел, кроме тех, которые "introduction" и "overview"..
MC>Тогда, думаю, в виндовой версии доков не больше.

У меня в винде вот эта дока поставилась: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html, и эта: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/classes.html. Только версии постарее. Разве этого мало?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.