Таня Шлюссер - Автостопом по Python

Тут можно читать онлайн Таня Шлюссер - Автостопом по Python - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2017. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Автостопом по Python
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2017
  • Город:
    СПб.
  • ISBN:
    978-5-496-03023-6
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Таня Шлюссер - Автостопом по Python краткое содержание

Автостопом по Python - описание и краткое содержание, автор Таня Шлюссер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Перед вами — увлекательная книга, которую по достоинству оценит любой неравнодушный программист и даже бывалый питонщик. Она составлена на основе одноименного онлайнового руководства
и содержит наработки многочисленных профессионалов и энтузиастов, знающих, что такое Python, и чего вы от него хотите. Проверенные методы и новейшие приемы, собранные в этой книге, помогут вам стать профессиональным Python-программистом и во всеоружии встретить наступающую эпоху Python 3.

Автостопом по Python - читать онлайн бесплатно полную версию (весь текст целиком)

Автостопом по Python - читать книгу онлайн бесплатно, автор Таня Шлюссер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Это не значит, что ни одно свойство не считается закрытым и что в Python нельзя реализовать инкапсуляцию. Наоборот, вместо того чтобы возводить бетонные стены между своим и чужим кодом, сообщество Python предпочитает полагаться на набор соглашений, которые указывают, к каким элементам нельзя получить доступ напрямую.

Основным соглашением для закрытых свойств и деталей реализации является добавление к именам всех подобных элементов нижнего подчеркивания (например, sys._getframe). Если клиентский код нарушает это правило и получает доступ к отмеченным элементам, будет считаться, что любое неверное поведение или проблемы вызваны именно клиентским кодом.

Использование этой концепции всеми одобряется: имя любого метода или свойства, к которым клиентский код не должен получить доступ, должно начинаться с нижнего подчеркивания. Это гарантирует более качественное разделение обязанностей и упрощает внесение изменений в код. Всегда можно сделать закрытое свойство открытым, обратное же действие выполнить гораздо сложнее.

Возвращайте значения из одной точки

Когда сложность функции увеличивается, зачастую вы можете встретить несколько выражений return в теле этой функции. Однако для того, чтобы ее было проще понять и прочесть, возвращайте осмысленные значения из минимально возможного количества точек.

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

Однако везде, где это возможно, имейте только одну точку выхода — сложно выполнять отладку для функций, когда вам сначала нужно определить, какое выражение return ответственно за результат. Наличие единой точки выхода из функции также поможет избавиться от некоторых ветвей кода, поскольку наличие пары точек выхода, возможно, намекает на то, что необходимо провести подобный рефакторинг. Код в следующем примере нельзя назвать плохим, но его можно сделать более чистым (как это показано в комментариях):

def select_ad(third_party_ads, user_preferences):

····if not third_party_ads:

········return None # Лучше сгенерировать исключение

····if not user_preferences:

········return None # Лучше сгенерировать исключение

····# Сложный код, предназначенный для выбора best_ad

····# Из доступных вариантов на основе индивидуальных предпочтений…

····# Постарайтесь устоять перед искушением вернуть best_ad в случае успеха…

····if not best_ad:

········# Запасной план определения best_ad

····return best_ad # Единая точка выхода, которая поможет обслуживать код

Соглашения

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

Альтернативы при проверке на равенство

Если вам не нужно явно сравнивать свое значение со значением True, None или 0, вы можете добавить его к оператору if, как в следующих примерах (см. статью «Проверка значения на правдивость» ( http://docs.python.org/library/stdtypes.html#truth-value-testing) — там представлен список значений, которые расцениваются как False).

Плохой код Хороший код
if attr == True: # Просто проверяем значение
····print 'True!' if attr:
····print 'attr is truthy!'
# или проверяем на противоположное значение
if not attr:
····print 'attr is falsey!'
# если вам нужно только значение 'True'
if attr is True:
····print 'attr is True'
if attr == None: # или явно проверяем на значение None
····print 'attr is None!' if attr is None:
····print 'attr is None!'
Получаем доступ к элементам массива

Используйте синтаксис x in d вместо метода dict.has_key или передавайте аргумент по умолчанию в метод dict.get().

Плохой код Хороший код
>>> d = {'hello': 'world'} >>> d = {'hello': 'world'}
>>> >>>
>>> if d.has_key('hello'): >>> print d.get('hello', 'default_value')
… ····print(d['hello']) world
# prints 'world' >>> print d.get('howdy', 'default_value')
… else: default_value
… ····print('default_value') >>>
>>> # или:
world … if 'hello' in d:
… ····print(d['hello'])
world
Манипуляции со списками

Списковые включения — мощный способ работы со списками (для получения более подробной информации обратитесь к соответствующей статье в руководстве The Python Tutorial по адресу http://docs.python.org/tutorial/datastructures.html#list-comprehensions). Функции map() и filter() могут выполнять операции со списками с помощью другого, более выразительного синтаксиса.

Стандартный цикл Списковое включение
# Отфильтруем все элементы, # Списковое включение выглядит
# чье значение превышает 4 # прозрачнее
a = [3, 4, 5] a = [3, 4, 5]
b = [] b = [i for i in a if i > 4]
for i in a: # Или:
····if i > 4: b = filter(lambda x: x > 4, a)
········b.append(i)
# Добавим 3 к каждому элементу списка # Здесь также прозрачнее
a = [3, 4, 5] a = [3, 4, 5]
for i in range(len(a)): a = [i + 3 for i in a]
····a[i] += 3 # Или:
a = map(lambda i: i + 3, a)

Используйте функцию enumerate(), чтобы определить свою позицию в списке. Этот вариант выглядит более читаемым, чем создание счетчика, и лучше оптимизирован для итераторов:

>>> a = ["icky", "icky", "icky", "p-tang"]

>>> for i, item in enumerate(a):

… ····print("{i}: {item}".format(i=i, item=item))

0: icky

1: icky

2: icky

3: p-tang

Продолжение длинной строки кода

Когда логическая строка кода длиннее принятого значения [38] В соответствии с PEP 8 это значение равно 80 символам. Согласно другим источникам — 100, а в вашем случае это значение зависит от того, что говорит ваш начальник. Ха! Честно говоря, любой, кто использовал консоль для отладки кода в полевых условиях, быстро оценит ограничение в 80 символов (при котором строка в консоли не переносится) и на деле будет использовать 75–77, чтобы можно было увидеть нумерацию строк в Vi. , нужно разбить строку на несколько физических строк. Интерпретатор Python объединит следующие друг за другом строки, если последний символ строки — обратный слэш. В некоторых случаях это может оказаться полезным, но такого подхода следует избегать, потому что знак пробела, добавленный в конце строки, разрушит код и может привести к неожиданным последствиям.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Таня Шлюссер читать все книги автора по порядку

Таня Шлюссер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Автостопом по Python отзывы


Отзывы читателей о книге Автостопом по Python, автор: Таня Шлюссер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x