Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 13, 2008 04:04:25

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Помощь начинающим

На работу приняли нового сотрудника. Весьма неглуп, но с Питоном познакомился только после трудоустройства. Основные языки - Ява и Шарп.

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

Привожу письмо практически полностью. Может, кому-то еще будет интересно. Или можно рассматривать его как повод для критики/дополнений.

——————————————————————————————————————-

Стандартная библиотека
Общее
Содержание __builtins__ - это всегда включено в module namespace и не требует import statement
Общие функции - http://docs.python.org/3.0/library/functions.html
Константы - http://docs.python.org/3.0/library/constants.html Особенно интересна NotImplemented. Впрочем, я сейчас интенсивно пользуюсь peak.util.symbols.Symbol
Типы - http://docs.python.org/3.0/library/stdtypes.html
Стандартные исключения - http://docs.python.org/3.0/library/exceptions.html Полезно взглянуть на иерархию. Еще один совет – строить свои типы от RuntimeError, если другие (например AttributeError, TypeError) не подходят лучше. Никогда не бросай Exception – слишком базовый класс, при попытке его перехватить можно скрыть KeyError например, что приводит к сложностям в сопровождении кода. Не старайся откусить больше, чем можешь съесть.
operator
itertools
functools
pprint
weakref
sys – много интересных параметров и настроек интерпретатора живут именно здесь.
Интроспекция
inspect
traceback
Отладка/замеры производительности
pdb
profile/cProfile
timeit
Структуры данных, помимо стандартных tuple, list, dict, set, frozenset
bisect
queue
collections.deque и collections.defaultdict
Файловая система
os
os.path
subprocess
Потоки
threading – и никогда thread, он слишком низкоуровневый и практически никогда не нужен (хотя я знаю и исключения из правила)

logging - как единственное средство. Никаких print в commited codebase


Отдельным пунктом - http://docs.python.org/3.0/reference/datamodel.html
Полное перечисление всех «магических методов» (перегруженных операций), бывающих у объекта. Очень проясняет общую картинку.

Внешнее: zope.interface, семейство peak от PJE – trellis, rules, addons, contextual и проч.

Перечислил только самое важное для меня, оставив многое за кадром.

Дух Питона полностью может быть описан в его Zen of Python:
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let's do more of those!
>>>

Подписываюсь под каждой буквой.



Отредактировано (Дек. 15, 2008 12:16:54)

Офлайн

#2 Дек. 13, 2008 06:23:27

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Помощь начинающим

> http://docs.python.org/3.0/
А может тройку ещё рановато трогать? Пусть отладят хотябы до 3.1. Да и сторонних либ пока почти нет…



Офлайн

#3 Дек. 14, 2008 05:00:08

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Помощь начинающим

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



Офлайн

#4 Дек. 15, 2008 08:45:01

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь начинающим

Андрей Светлов
functools
Может полезней будет xoltar toolkit?
И еще, у тебя все ссылки идут на http://docs.python.org/3.0/library/functions.html



Отредактировано (Дек. 15, 2008 08:53:41)

Офлайн

#5 Дек. 15, 2008 12:21:35

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Помощь начинающим

balu Ссылки поправил.
На xoltar toolkit буду смотреть. Спасибо за ссылку



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version