Форумы сайта python.su
Вы не зашли.
2 Ferroman:
распухание - в языке - введено много сахара там, где большой надобности в нем не было - все эти геттеры/сеттеры, оператор with, аннотации, операторы / и //, новая форма записи if/else, генераторные выражения и списочные включения.
итераторы, генераторы и метаклассы, - вещи, полезные, но, будучи внесенными в язык изменили характер самого языка.
две несовместимые ветки.
Отдельно частый релиз-цикл, когда предыдущие релизы до конца не ассимилированы.
Неактивен

balu
А я наивно считал все перечисленное - достоинствами 8-)
Отредактированно Андрей Светлов (2009-08-25 12:34:34)
Неактивен
Андрей Светлов написал:
А я наивно считал все перечисленное - достоинствами 8-)
- геттеры/сеттеры расчудесно работали с property, зачем объявлять по новому?
- чем не угодил try/finally, что ввели with?
- аннотации лично мне не травятся тем, что аннотируемое может не соответствовать реальным значениям параметров. Можно, конечно, создать и соответствующий декоратор, который будет проверять соответствие типов аннотируемому, но нет никакой гарантии, что его будут применять. Выглядит это, как костыль к объявлению типов.
- генераторные выражения и списочные включения лично меня подкупают только большей скоростью выполнения. Но парсить это глазами мне неудобно. Аналогично и с новой формой записи if/else, плюс Питон давно имел эту функциональность.
ИМХО, не было серьезной причины вносить это в язык. Лично я не вижу большого выигрыша на операциях примерно одной сложности. Хороший пример того, что внесли удачно - это декораторы.
balu написал:
итераторы, генераторы и метаклассы
А за это я ничего плохого и не сказал. Разве что не совсем простые эти концепции. Но их полезность превышает затраты на них.
balu написал:
две несовместимые ветки.
А что тут хорошего? Надо держать в голове фактически 2 разных языка - с 2-ки еще долго многие не слезут, а 3-ка еще мало интересна во многих областях.
balu написал:
частый релиз-цикл
Ага, очень неприятно, когда из-за этого у тебя что-то отваливается и приходится патчить. Зато имеем нового сахарку. Лично меня вполне устроил бы и релиз языка раз в 2 года - ИМХО самый оптимальный срок.
Отредактированно balu (2009-08-25 15:10:12)
Неактивен

balu написал:
- геттеры/сеттеры расчудесно работали с property, зачем объявлять по новому?
property - частный случай дескриптора, который имеет гораздо более широкую функциональность. Реализаций дескрипторов может быть множество (я сам их делал как минимум несколько десятков раз).
Дескрипторы введены для лучшей инкапсуляции.
balu написал:
- чем не угодил try/finally, что ввели with?
Это не только try/finally (с информацией об исключении, которую можно достать и через sys.info - более неявно), но и переменная контекста. Context managers опять же обеспечивают лучшую инкапсуляцию, code reuse и прочие чудесные вещи. Являясь синтаксическим сахаром, конечно. И запись чуть короче. А еще это - некий общий протокол, которому стараются следовать. Это лучше, чем 5 лет назад: пытались делать context managers, но у каждой работы способ их использования был своим, чуть отличным от других.
С позиции асма любой ЯП - не более чем синтаксический сахар. Только иногда на глазах количество перерастает в качество.
balu написал:
- аннотации лично мне не травятся тем, что аннотируемое может не соответствовать реальным значениям параметров. Можно, конечно, создать и соответствующий декоратор, который будет проверять соответствие типов аннотируемому, но нет никакой гарантии, что его будут применять. Выглядит это, как костыль к объявлению типов.
Аннотируется не тип параметра или возвращаемого значения, а сам параметр "вообще". Т.е. это как с дескрипторами: можно сделать на них property, а можно - нечто совсем другое.
balu написал:
- генераторные выражения и списочные включения лично меня подкупают только большей скоростью выполнения. Но парсить это глазами мне неудобно. Аналогично и с новой формой записи if/else, плюс Питон давно имел эту функциональность.
Мне читать - привычно. А то, что генераторное выражение является именно expression, а не statement - позволяет включать это где угодно. Упрощая запись. Впрочем, не нравиться - не ешь. Никто не заставляет.
var = a if cond > 0 else b
чуть понятней и менее глюкаво, чем
var = cond and a or b
Более явно, что ли.
balu написал:
ИМХО, не было серьезной причины вносить это в язык. Лично я не вижу большого выигрыша на операциях примерно одной сложности. Хороший пример того, что внесли удачно - это декораторы.
Еще есть как минимум
res = yield a
и
yield from gen()
balu написал:
balu написал:
итераторы, генераторы и метаклассы
А за это я ничего плохого и не сказал. Разве что не совсем простые эти концепции. Но их полезность превышает затраты на них.
Метаклассов должно быть мало, но порой без них сложно обойтись.
Итераторы и генераторы - элементарные и повсеместно используемые строительные блоки.
balu написал:
balu написал:
две несовместимые ветки.
А что тут хорошего? Надо держать в голове фактически 2 разных языка - с 2-ки еще долго многие не слезут, а 3-ка еще мало интересна во многих областях.
Второй ветке массово жить еще полтора-два с половиной года. Потом утвердится тройка, и это меня радует. Помню, то же говорили сразу после выхода Python 2.0
balu написал:
balu написал:
частый релиз-цикл
Ага, очень неприятно, когда из-за этого у тебя что-то отваливается и приходится патчить. Зато имеем нового сахарку. Лично меня вполне устроил бы и релиз языка раз в 2 года - ИМХО самый оптимальный срок.
Отваливается редко и мало, все же. У меня никогда не было больших проблем с миргацией на новую минорную версию. py3k - другое дело, но этот шаг вынужденный. Иногда приходится убирать мусор за собой, и делать это довольно кардинально.
В других ЯП зачастую ситуация еще более веселая.
Кстати, опять же: не нравятся частые релизы - можно брать на использование только каждый четный
Для согласования внутренних ритмов ![]()
Неактивен
Андрей Светлов написал:
Аннотируется не тип параметра или возвращаемого значения, а сам параметр "вообще"
Я прекрасно понимаю, что можно сделать значительно больше, чем просто аннотацию и последующую проверку типа. Мне гораздо больше не нравится, что на этой основе можно наделать несоответствия описываемого реальному. Тут вопрос больше к культуре и самодисциплине программистов, чем к конкретной фиче языка.
Андрей Светлов написал:
С позиции асма любой ЯП - не более чем синтаксический сахар. Только иногда на глазах количество перерастает в качество.
С позиций двоичных кодов и асм тоже сахар. Плохо не то, что есть сахар. Плохо когда его больше, чем нужно. Все вышеперечисленное является немного улучшенной реализацией того, что уже есть и примерно того же уровня сложности. Мне, любителю минимализма, это не понравилось. Единственная польза, ИМХО, это направление на стандартизацию уже имеющихся решений. Примерно как с абстрактными классами - у многих было реализовано по разному, а теперь есть общая рекомендация.
А итераторы, генераторы и метаклассы хотя и изменили характер языка то только в плюс. Тут просто констатация факта.
Андрей Светлов написал:
var = a if cond > 0 else b чуть понятней и менее глюкаво
Но и менее функционально. Хотя записывать таки быстрее.
Андрей Светлов написал:
Второй ветке массово жить еще полтора-два с половиной года. Потом утвердится тройка, и это меня радует
Думаю больше, увы. Например, у меня 5 из 5 ключевых библиотек на 2.Х, у знакомых тоже примерно та же ситуация. И перейти на 3-ку можно будет только когда они все заработают. Или найдутся адекватные замены. А за это время еще пара минорных версий языка сменится.
Андрей Светлов написал:
Впрочем, не нравиться - не ешь. Никто не заставляет.
И про плюсы так говорят... И в перле есть много способов сделать что-то. И потом, я ведь не в вакууме живу, приходится принимать то, что не нравится.
Андрей Светлов написал:
У меня никогда не было больших проблем с миргацией на новую минорную версию
А у меня были - пришлось несколько дней потратить на переписывание после перевода кода на 2.6. Знакомые по той же причине на 2.4 держат часть своего production.
Отредактированно balu (2009-08-26 11:20:43)
Неактивен

balu
Кажется, прозвучало ключевое слово - стандартизация имеющихся подходов. И это очень важно. Остальное - шелуха. Плюс каждый может иметь свое собственное мнение.
Вопрос о массовом переходе на тройку - интересен. Поглядим, как оно в жизни пойдет. Я оптимистично думаю, что все будет довольно быстро. Отчасти потому, что помню как это было уже один раз. И, в немалой степени, потому что мне очень нравятся новые изменения и очень хочется видеть их повсеместно - но это уже субъективное.
Неактивен
Андрей Светлов написал:
И, в немалой степени, потому что мне очень нравятся новые изменения
Мне тоже нравятся, хотя я очень боялся за lambda и reduce, которыми постоянно пользуюсь. В любом случае поживем - увидим. Хотя - прошел почти год, с выхода 3-ки, вышла 3.1, а во многих библиотеках нет никакого шевеления в сторону 3-ки. А жаль, особенно мне хочется Ordered Dictionaries.
Неактивен

Двойка тоже пошла "в люди" начиная со знаменитого релиза 2.2
Неактивен
Неактивен
Неактивен
dezz написал:
Может ещё кто-то предложит хорошие варианты?
Dive Into Python 3
http://diveintopython3.org/
***
упс, slav0nic её уже рекомендовал.
***
на русском из новых книг есть ещё это:
Программирование на Python 3. Подробное руководство
http://www.symbol.ru/alphabet/661501.html
Отредактированно zim22 (2009-09-24 16:40:57)
Неактивен
zim22 написал:
Dive Into Python 3
http://diveintopython3.org/
на английском я врядли осилю, знания английского не на том уровне)
zim22 написал:
на русском из новых книг есть ещё это:
Программирование на Python 3. Подробное руководство
http://www.symbol.ru/alphabet/661501.html
Мне не обязательно, чтобы книга была новой, мне нужно, чтобы она была читабельной, чтобы можно было легко понять о чём в ней пишут) эта книга именно такая?
Неактивен
Learning Python, 4th Edition 2009 
O’Reilly Media, Inc.; 4 edition (October 2, 2009) | ISBN: 0596158068 | 1212 pages | PDF | 6 MB
Google and YouTube use Python because it’s highly adaptable, easy to maintain, and allows for rapid development. If you want to write high-quality, efficient code that’s easily integrated with other languages and tools, this hands-on book will help you be productive with Python quickly — whether you’re new to programming or just new to Python. It’s an easy-to-follow self-paced tutorial, based on author and Python expert Mark Lutz’s popular training course.
Each chapter contains a stand-alone lesson on a key component of the language, and includes a unique Test Your Knowledge section with practical exercises and quizzes, so you can practice new skills and test your understanding as you go. You’ll find lots of annotated examples and illustrations to help you get started with Python 3.0.
* Learn about Python’s major built-in object types, such as numbers, lists, and dictionaries
* Create and process objects using Python statements, and learn Python’s general syntax model
* Structure and reuse code using functions, Python’s basic procedural tool
* Learn about Python modules: packages of statements, functions, and other tools, organized into larger components
* Discover Python’s object-oriented programming tool for structuring code
* Learn about the exception-handling model, and development tools for writing larger programs
* Explore advanced Python tools including decorators, descriptors, metaclasses, and Unicode processing
About the Author
Mark Lutz is the world leader in Python training, the author of Python’s earliest and best-selling texts, and a pioneering figure in the Python community since 1992. He is also the author of O’Reilly’s Programming Python, Python Pocket Reference, and Learning Python (all in 4th Editions). Mark can be reached on the web at www.rmi.net.
http://uploading.com/files/mcc9f9f2/Ore … .2009.rar/
http://rapidshare.com/files/284562649/O … p.2009.rar
Отредактированно snaga (2009-09-25 16:44:17)
Неактивен
snaga, огромное спасибо за Learning Python, 4th Edition
dezz написал:
на английском я врядли осилю, знания английского не на том уровне)
я тоже кое-как осиливаю, просто надоело уже читать низкокачественные русские переводы.
Неактивен
dezz написал:
Мне не обязательно, чтобы книга была новой, мне нужно, чтобы она была читабельной, чтобы можно было легко понять о чём в ней пишут) эта книга именно такая?
Купил и прочитал "Изучаем Python, 3-е издание" Лутца.
Книга оочень даже читабельная. Вообще Орейловские книги все на высоком уровне. Так что советую либо:
Изучаем Python, 3-е издание (на русском), либо
Learning Python, 4th Edition (на английском).
Удачки)))
Неактивен
Программирование на Python 3
Скачать
Третья версия языка Python сделала его еще более мощным, удобным, логичным и выразительным. Книга "Программирование на Python 3" написана одним из ведущих специалистов по этому языку, обладающим многолетним опытом работы с ним. Издание содержит все необходимое для практического освоения языка: написания любых программ с использованием как стандартной библиотеки, так и сторонних библиотек для языка Python 3, а также создания собственных библиотечных модулей.
Автор начинает с описания ключевых элементов Python, знание которых необходимо в качестве базовых понятий. Затем обсуждаются более сложные темы, поданные так, чтобы читатель мог постепенно наращивать свой опыт: распределение вычислительной нагрузки между несколькими процессами и потоками, использование сложных типов данных, управляющих структур и функций, создание приложений для работы с базами данных SQL и с файлами DBM.
Неактивен
"Программирование на Python 3" зеркала: http://rapidshare.com/files/284236929/120865430.rar и http://www.onlinedisk.ru/file/225011/
Неактивен
Python Pocket Reference, Fourth Edition
O'Reilly Media, Inc. | September 2009 | ISBN: 0596158084 | 208 pages | PDF | 1,4 MB
This is the book to reach for when you're coding on the fly and need an answer now. It's an easy-to-use reference to the core language, with descriptions of commonly used modules and toolkits, and a guide to recent changes, new features, and upgraded built-ins -- all updated to cover Python 3.x as well as version 2.6. You'll also quickly find exactly what you need with the handy index.
Written by Mark Lutz, who is widely recognized as today's leading Python trainer, Python Pocket Reference, Fourth Edition, is the perfect companion to O'Reilly's classic Python tutorials, Learning Python and Programming Python.
This edition covers:
Built-in object types, including numbers, lists, dictionaries, and more
Statements and syntax for creating and processing objects
Functions and modules for structuring and reusing code
Python's object-oriented programming tools
The exception-handling model
Built-in functions, exceptions, and attributes
Special operator overloading methods
Widely used standard library modules and extensions
Command-line options and development tools
Python idioms and hints
depositfiles.com
uploading.com
megaupload.com
Отредактированно vaxXxa (2009-10-13 17:02:45)
Неактивен