LINUX.ORG.RU

Знакомство с Python 3: Часть 2. Более сложные темы

 


0

0

В предыдущей статье о Python 3—также известном как Python 3000 или Py3K— обсуждались некоторые простые изменения языка, нарушающие обратную совместимость, такие как новая функция print(), тип данных bytes и изменения в типе string. Здесь, во второй части, изучаются более сложные темы, большинство из которых также нарушает обратную совместимость с версиями 2.х: абстрактные базовые классы (abstract base classes или ABC), метаклассы, аннотации функций и декораторы, поддержка целочисленных констант, иерархия числовых типов и изменения в возбуждении и перехвате исключительных ситуаций.

>>> Подробности

★★★

Проверено: hibou ()
Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от fabregas

Дело не в том, что генерилка чего-то не умеет, а в том, что язык плохо приспособлен для автоматической генерации и распознавания. Нафига в канал перед строкой в 4 символа типа i=18 передавать ещё 15 пробелов? посмотрите на досуге, как в xhtml выглядит javascript или какой-нибудь php.

> Вывод - python очень рекомендую для обучения программированию, как первый язык.

Только что учиться... Но уж больно много шума заради учебного языка.

gns ★★★★★
()

Вообще, пистон -- какое-то весьма странное поделие. Мне, собственно, не понятна его целевая аудитория. Зачем отступы делать синтаксической конструкцией? Дисциплинирует? Эдакий метод обучения крыс в лаборатории: пойдешь неправильно -- уе..т током, возможно, на середине пути :) Можно подумать люди пишут без отступов. На его, так называемое, ООП, вообще без смеха и слез смотреть нельзя. Как столько людей могли повестись на такой топорный пиар этого недоязыка -- непонятно.

a3
()
Ответ на: комментарий от gns

> Нафига в канал перед строкой в 4 символа типа i=18 передавать ещё 15 пробелов?

Если у тебя 15 уровней вложенности, то ты что-то делаешь не так (даже с учетом того, что это автоматически генерируемый код).

tailgunner ★★★★★
()
Ответ на: комментарий от a3

> На его, так называемое, ООП, вообще без смеха и слез смотреть нельзя

TELL ME MOAR

tailgunner ★★★★★
()
Ответ на: комментарий от a3

> Мне, собственно, не понятна его целевая аудитория.

гопнику Васе с раёна не понятна целевая аудитория книг по философии, однако тем, кто их читает пох до мнения гопника Васи.

ossa ★★
()
Ответ на: комментарий от Hjorn

Functions should be short and sweet, and do just one thing. (c) /usr/src/linux/Documentation/CodingStyle

Да. это не для Питона, но согласитесь, сие здорово облегчает жизнь вне зависимости от языка. Вам удобно вообще читать функцию высотой более экрана? А чужого кода?

world
()
Ответ на: комментарий от a3

А чтобы никто физически не мог сделать нечитабельное поделие в виде каши, как делают некоторые на Си. Потом проект разрастается и опыт у разработчика добавляется, даже если он станет писать нормально, какие-то куски у него так и остаются чёрт знает чем. Уверен, через год он сам не сможет прочитать, что там написано.

Конечно, и в питоне можно сделать месево, у кого особо извращённый ум.

world
()
Ответ на: комментарий от world

> А чтобы никто физически не мог сделать нечитабельное поделие в виде каши

> и в питоне можно сделать месево

Я один здесь вижу противоречие?

a3
()
Ответ на: комментарий от tailgunner

15 пробелов... если таб = 8, то это всего второй уровень, а если 4, то четвёртый. Только 15 плохо делится на 8 и 4. О каких там табах речь? Или правда - 1 пробел = 1 уровень?))) Сурово же...

world
()
Ответ на: комментарий от a3

В си месево работает и делается легко. В питоне - надо постараться.

Единственное что, в частности в Си хорошо - это то, что емаксовое C-x C-h C-M-\ делает его красивым. С питоном - фиг, там сразу ломаются все циклы.

world
()
Ответ на: комментарий от world

> В си месево работает и делается легко. В питоне - надо постараться.

Да нету такой проблемы, она надуманная. А вот в пистоне она есть, я могу скопировать пример из браузера и получить кашу, которую НЕВОЗМОЖНО корректно восстановить. Как ты и сам сказал, любой приличный форматер сделает из любой (тут должен быть индекс с оговоркой :)) сишной каши читаемый код, а из пистоновской -- нет.

a3
()
Ответ на: комментарий от world

ковыряю-ковыряю эти ы-прайзы, и што-то там разработчики этот очевидный, в общем-то, принцип (Functions should be short and sweet, and do just one thing) сильно не жалуют. Особливо в застарелых проектах.

impfp
()
Ответ на: комментарий от world

> 15 пробелов... если таб = 8, то это всего второй уровень

Для автогенерируемого кода разумно поставить уровень вложенности в 1 пробел. Так что тут именно 15-й уровень %)

tailgunner ★★★★★
()
Ответ на: комментарий от a3

Выкладывание примеров по программированию только с html-форматированием - это в принципе не правильно. Примеры на сайтах должны быть такими, чтобы посимвольно копироваться куда угодно. Если не ошибаюсь <pre> делает это очень хорошо. Ну или рядом ссылка на файл с кодом, если на самом сайте всякие подсветки, номера строк и проч.

А копирование примера из браузера - не лучший способ программирования :)

world
()
Ответ на: комментарий от Hjorn

> Это особенно увлекательно, если функция не помещается целиком на один экран. Хотя конечно редактор с вертикальными линиями может здорово помочь.

google:blank-mode

cab ★★★★
()
Ответ на: комментарий от world

> Functions should be short and sweet, and do just one thing

Поддерживаю.

> Вам удобно вообще читать функцию высотой более экрана? А чужого кода?

Неудобно. Но запретить всем писать длинные функции с кучей уровней вложенности не в моих силах. А питоновский синтаксис особенно к такому "стилю" чувствителен.

Hjorn
()
Ответ на: комментарий от world

> Конечно, и в питоне можно сделать месево

Легко. Достаточно не ставить пробелы между токенами там, где это допустимо. Странно, что Питон не заставляет и это тоже делать. Было бы консистентно и в духе идеологии "the only way to do it" :) А ещё есть такой важный аспект как именование. Никакие отступы не спасут от нечитаемых и неадекватных имён.

Hjorn
()
Ответ на: комментарий от world

> Единственное что, в частности в Си хорошо - это то, что емаксовое C-x C-h C-M-\ делает его красивым. С питоном - фиг, там сразу ломаются все циклы.

А ещё для C-like есть замечательный инструмент indent, который из говна конфетку способен сделать, причём именно в том виде, в каком мне захочется. Так что проблема плохого форматирования, которую якобы решают семантически значимые отступы, на самом деле не так остра. Скорее они сами больше проблем порождают.

Hjorn
()
Ответ на: комментарий от cab

> google:blank-mode

Не, это не совсем то. В отличие от вертикальных линий blank-mode сильно замусоривает экран. Если мне захочется покопаться в мусоре, я возьму Перл :)

Hjorn
()
Ответ на: комментарий от world

> Примеры на сайтах должны быть такими

Какая мне разница, какими они должны быть, какие есть, такие есть. Вы говорите о какие-то постоянных проблемах с форматирование в "других" языках и о том как с этим прекрасно в пистоне, а на деле выясняется, что в "других" все отлично и никаких проблем нет, а в пистоне они есть, причем никак принципиально не решаются и не автоматизируются.

a3
()

ребята, это только трепание языками! тот кто реально использует python в разработке каких то продуктов (и при этом имеет опыт подобной разработки на других языках), тот понимает, что это очень хороший язык (хоть и не для всех задач конечно)...
скорость разработки + потдержка кода несопоставимы с аналогичными на С++ или Java...

а люди, которые тот python издали видели, и кричат тут какое это говно - вызывают просто улыбку...

Мое мнение, что этот язык в наших странах нужно использовать значительно в большей степени... мы как всегда отстаем от остального развитого мира...

fabregas
()
Ответ на: комментарий от a3

Нет же, я говорю, что в других языках нет жёсткого форматирования и каждый волен лепить отсебятину. Проблем с форматированием нет.

А в питоне имеется жёсткое (до некоторой степени) форматирование, отсебятины меньше. А писать надо аккуратно. Только и всго.

world
()
Ответ на: комментарий от world

> А в питоне имеется жёсткое (до некоторой степени) форматирование, отсебятины меньше. А писать надо аккуратно. Только и всго.

Лично меня эти отступы начинают доставать когда в общении по ICQ/Skype/Jabbber/etc. нужно передавать куски кода. И все форматирование слетает напрочь. В итоге получатель имеет не работающий код.

Также когда делаешь copy-paste не всегла все гладко.

В остальном притензий нет. (к другим языкам кроме brainfack и этих притензий нет :)

Korwin ★★★
()
Ответ на: комментарий от Korwin

> Лично меня эти отступы начинают доставать когда в общении по ICQ/Skype/Jabbber/etc. нужно передавать куски кода

Извините, но это вообще черт знает что! Во-первых, не знаю кому это нада кроме школьников и студентов (кто еще додумается передавать код программы в IM-сообщении). Во-вторых, а как же вы бинарники то по асе передаете?)) искренне сочувствую!

fabregas
()
Ответ на: комментарий от fabregas

> Извините, но это вообще черт знает что!
А по конкретнее? И пожалуйста без громких и пустых слов, по существу.

Да, по асе и бинарники передаем - функция пересылкой файлов называется :)

Korwin ★★★
()
Ответ на: комментарий от fabregas

> так код программ нужно так же передавать! И тогда не будет чорт и что)
т.е. по теме сказать не чего?
А так можно вообще IM'ами не пользоваться, да...

Korwin ★★★
()
Ответ на: комментарий от gns

>Только что учиться...

питон очень нагляден так что он идеален для учебы. А также для написания скриптов с которыми возможно будут работать другие люди ;)

>Но уж больно много шума заради учебного языка.


А разве хороший учебный язык это плохо? Как показывает практика аккуратнее всего пишут код люди ничинавшие с Паскаля, хуже всего - с бейсика и упаси господи если первым языком был си или перл

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от a3

>Зачем отступы делать синтаксической конструкцией? Дисциплинирует?

нагляднее. Если писать как положено то на каждую пару скобок расходуется две строки что разрыхляет код и повышает трудность его восприятия. Если перед скобкой перевод строки не делать то это превращает код в кашу

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от gns

>Нафига в канал перед строкой в 4 символа типа i=18 передавать ещё 15 пробелов?

можно подумать ты эти пробелы ручками ставишь. Или суровый кодер с notepad.exe?

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от gns

раз уж так сложно генерировать - ну сделай элементарый препроцессор, который принимает питон без отступов но со скобочками, и генерирует валидный питон с отступами. работы на вечер, а сколько вони сразу исчезнет с лора... хотя тогда некоторые тролли могут и вымереть от отсутствия еды.

olegsov
()
Ответ на: комментарий от DNA_Seq

> А разве хороший учебный язык это плохо? Как показывает практика аккуратнее всего пишут код люди ничинавшие с Паскаля

К счастью, Вирт не додумался до такого извращения, как невидимый символ конца блока. И читаемость как то нисколько не пострадала от end'ов. Наоборот, структура кода в Паскале нагляднее.

Hjorn
()
Ответ на: комментарий от Korwin

> В остальном притензий нет. (к другим языкам кроме brainfack и этих притензий нет :)

Ты счастливый человек - ни к одному языку не имеешь сколь-нибудь серьезных претензий. Даже завидно...

tailgunner ★★★★★
()
Ответ на: комментарий от a3

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

olegsov
()
Ответ на: комментарий от DNA_Seq

> Ну так затарболь код и передавай

Perl:
[team01] Слушай, что я тут в коде напортачил? Не пойму, ошибку кидает:
...
perl source
...
[teamLead] Ты, шарик, балбес. Нужно было:
...
perl source
...


Python:
[team01] Слушай, что я тут в коде напортачил? Не пойму. Лови тарбол
[team01] <нашел нужный файл>
[team01] <сделал n-действий чтобы отправить файл>
[teamLead] <принял файл>
[teamLead] <открыл файл в _правильном_ редакторе>


Мдя...

Korwin ★★★
()
Ответ на: комментарий от tailgunner

> Ты счастливый человек - ни к одному языку не имеешь сколь-нибудь серьезных претензий. Даже завидно...

Завидывать и передергивать - не очень хорошие черты. Они вас не красят.

Korwin ★★★
()
Ответ на: комментарий от Korwin

> Завидывать и передергивать - не очень хорошие черты.

Всегда был завистлив, ничего не могу поделать... Но при этом я объективен: фразу "В остальном притензий нет. (к другим языкам кроме brainfack и этих притензий нет :)" иначе, чем "серьезные претензии отсуствуют" истолковать нельзя %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> иначе, чем "серьезные претензии отсуствуют" истолковать нельзя %)
Вырывание из контекста который был про отступы. Уточняю: к другим языкам к отступам не имею притензий, поскольку:
1. Форматирование кода всегда можно переложить на DE
2. Нет указанных выше проблем
3. При переформатировании не слетает логика

Korwin ★★★
()
Ответ на: комментарий от Korwin

зачем переформатровать питоновский код? он и так форматирован сразу после написаноя. очередная попытка доказательства через попытку решения несуществующих проблем.

olegsov
()
Ответ на: комментарий от Korwin

> Цитата?

При обсуждении недостатков отступов, ты сказал: "В остальном притензий нет. (к другим языкам кроме brainfack и этих притензий нет :)". Это значит, что отступы - единственная претензия к Питону. К остальным языкам нет даже этой претензии.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Будьте внимательнее, пожалуйста. Оригинальный комментарий:
http://www.linux.org.ru/view-message.jsp?msgid=3663597&page=1#3666740

Речь идет об отступах, как продолжение (развитие) общей темы обсуждения.
Конечно, я понимаю, что удобно вырвать фразу из контекста и считать, что отступы - единственная притензия к Питону. Увы, это не так.

Korwin ★★★
()
Ответ на: комментарий от Korwin

> Оригинальный комментарий: http://www.linux.org.ru/view-message.jsp?msgid=3663597&page=1#3666740

Похоже, у нас разные русские языки.

> удобно вырвать фразу из контекста и считать, что отступы - единственная притензия к Питону.

Я неплохо знаю Питон и его проблемы. Удивило то, что к остальным языкам претензий нет.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Удивило то, что к остальным языкам претензий нет.
В контексте отступов - да.

Korwin ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.