В статье "What's New in Python 2.5 (http://www.onlamp.com/pub/a/python/2006/10/26/python-25.html)" доступно и на примерах демонстрируются наиболее полезные новшества Python 2.5.URL: http://www.onlamp.com/pub/a/python/2006/10/26/python-25.html
Новость: http://www.opennet.me/opennews/art.shtml?num=8639
Ну меня вот это убило:a = 1 if x > 15 else 2
Какое-то смешение Perl-style и C-style, в итоге - маразмъ.
Т.е. стремление разработчиков языка к языку _человеческому_ это уже маразм? До чего же мы дойдём? Ничего против Perl и C не имею, отличные языки. Но модели синтаксиса надо как-то пересматривать, не вечно же жить нам с (?:)
Я был очень приятно удивлён такому решению. Нормальный. Английский. Язык.
>a = 1 if x > 15 else 2Переведу на русский:
а равно 1 если x больше 15, иначе равно 2
и что тут не так?
>>a = 1 if x > 15 else 2
>
>Переведу на русский:
>
>а равно 1 если x больше 15, иначе равно 2
>
>и что тут не так?
Однообразия нет.
Какого ешё однообразия? Просто незнакомый синтаксис и костное мышление критиков.
>>a = 1 if x > 15 else 2
>
>Переведу на русский:
>
>а равно 1 если x больше 15, иначе равно 2
>
>и что тут не так?По мне читается хуже чем
x > 15 ? a = 1 : a = 2
Здесь акцент сделан на условии, а два подобных присвоения в конце.
Из какого языка программирования данный пример? Если из C, то вы его не знаете.
PHP
:-) Ну набросились на человека.. не придирайтесь - по существу пишите, а не про частности..Если добавить к именам переменных символ $, то получиться Perl:
% perl -e 'my $x = $a = 0; $x > 15 ? $a = 1 : $a = 2; printf("x = %d\na = %d\n", $x, $a)'
x = 0
a = 2Так что... ;-)
Согласен, ужасно
Ну да, конечно, конструкция с if довольно странная получилась ("=may not be obvious at first unless you're Dutch" :) ), но далеко не самое интересное новшество.Меня гораздо больше порадовало появление нормального RAII (хотя опять же в несколько "голландском" варианте контекст-менеджеров). Ну и унификация try-блоков -- мелочь, а приятно.
>По мне читается хуже чем
x > 15 ? a = 1 : a = 2
Здесь акцент сделан на условии, а два подобных присвоения в конце.a = (x >15)?1:2;
товарищ,а ведь вы и вправду не знаете Си,учите матчасть, а напредмет читабельности так что
a = 1 if x > 15 else 2
что
a = (x >15)?1:2;
читаются одинаково нормально
>x > 15 ? a = 1 : a = 2
Данное выражение равносильно a = (x >15)?1:2
Хотя действительно, первый вариант хуже и так могут написать люди, изучающие Си.
Я тебе скажу, как это читается.(удивленным тоном) а равно икс больше пятнадцати? один делим на два.
интуитивно, да.
(а по-моему, синтаксический костыль, сейчас уже и не поймешь, зачем придуманный. К питоновской конструкции это тоже относится, кстати)
Товарищ молодец, с юмором все в порядке :) только вот ето - как говорится классика,и так как вы проинтерпретировали наверное никто и не сможет.