Python лучшие практики и советы от разработчиков

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

Python — это язык высокого уровня, используемый во многих областях разработки, таких как веб-разработка (Django, Flask), анализ данных (SciPy, scikit-learn), пользовательский интерфейс рабочего стола (wxWidgets, PyQt) и системное администрирование (Ansible, OpenStack). Основным преимуществом Python является скорость разработки. Python поставляется с богатой стандартной библиотекой, множеством сторонних библиотек и чистым синтаксисом. Все это позволяет разработчику сосредоточиться на проблеме, которую он хочет решить, а не на деталях языка или изобретении колеса.

Посетите страницы ресурсов Toptal для получения дополнительной информации о Python. Существует руководство по найму Python, описание работы Python , распространенные ошибки Python и вопросы об интервью Python .

Научитесь использовать словарь Python

Словарная структура данных в Python — это способ хранения данных; Более того, он мощный и простой в использовании. Словари встречаются на других языках как «ассоциативные воспоминания» или «ассоциативные массивы». В Python словарь — это неупорядоченный набор key: valueпар с требованием, чтобы каждый ключ был уникальным.

Как мы должны использовать словарь в повседневной разработке?

Давайте рассмотрим некоторые распространенные варианты использования с сопровождающими примерами кода. Допустим, вы используете много if/elseпредложений в своем коде:

if name == "John": 
   print "This is John, he is an artist"
elif name == "Ted":
   print "This is Ted, he is an engineer"
elif name == "Kennedy":
   print "This is Kennedy, he is a teacher"

Используя словарь, мы можем написать такой же код:

name_job_dict = {
   "Josh": "This is John, he is an artist",
   "Ted": "This is Ted, he is an engineer",   
   "Kenedy": "This is Kennedy, he is a teacher",
}
print name_job_dict[name]

Второй вариант использования, когда нам нужно значение по умолчанию для ключа:

def count_duplicates(numbers):
   result = {}
   for number in numbers:
       if number not in result:  # No need for if here
           result[key] = 0
       result[number] += 1
   return result

Используя setdefault, мы получаем более чистый код:

>>> def count_duplicates(numbers):
   result = {}
   for number in numbers:
       result.setdefault(number, 0)  # this is clearer
       result[number] += 1
   return result

Мы также можем использовать словарь для управления списками:

>>> characters = {'a': 1, 'b': 2}
>>> characters.items() // return a copy of a dictionary’s list of (key, value) pairs (https://docs.python.org/2/library/stdtypes.html#dict.items)
[('a', 1), ('b', 2)]
>>> characters = [['a', 1], ['b', 2], ['c', 3]]
>>> dict(characters) // return a new dictionary initialized from a list (https://docs.python.org/2/library/stdtypes.html#dict)
{'a': 1, 'b': 2, 'c': 3}

При необходимости, легко изменить форму словаря, переключая ключи и значения — переход {key: value}на новый словарь {value: key}— также известный как инвертирование словаря:

>>> characters = {'a': 1, 'b': 2, 'c': 3}
>>> invert_characters = {v: k for k, v in characters.iteritems()}
>>> invert_characters
{1: 'a', 2: 'b', 3: 'c'}

Последний совет связан с исключениями. Разработчики должны следить за исключениями. Одним из самых раздражающих является KeyErrorисключение. Для этого разработчики должны сначала проверить, существует ли ключ в словаре.

>>> character_occurrences = {'a': [], ‘b’: []}
>>> character_occurrences[‘c’]
KeyError: 'c'
>>> if ‘c’ not in character_occurrences:
        character_occurrences[‘c’] = []
>>> character_occurrences[‘c’]
[]
>>> try:
        print character_occurrences[‘d’]
    except: 
        print “There is no character `d` in the string”

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

>>> from collections import defaultdict
>>> character_occurrences = defaultdict(list)
>>> character_occurrences['a']
[]
>>> character_occurrences[‘b’].append(10)
>>> character_occurrences[‘b’].append(11)
>>> character_occurrences[‘b’]
description:phyton - это язык высокого уровня, используемый во многих областях разработки, таких как веб-разработка
keywords:phyton
0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля