Питон

5 лучших практик Python для заметного улучшения качества кода

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

Начните изучение Python с лучших практик!

Все было иначе, когда я начинал с Python. Как и я, многие другие неосознанно усваивают несколько плохих методов кодирования на этапе новичка.

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

Учась на ошибках и опыте, я перечислил 5 лучших практик, а также плохие практики, которых следует избегать 😉

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

Вы можете перейти к своей любимой части с индексом ниже.

· Stop importing all using import *
· Specify the exception in the Try-Except
· Use Dictionary methods
· Use zip() to iterate over multiple lists
· Open a file using “with”

Начнем..🚀

Прекратить импортировать все с помощью импорта *

Чтобы начать использовать Python для различных задач аналитики и автоматизации, нам нужно импортировать функции и классы из пакета Python.

Одна из наиболее распространенных практик, которым следуют новички, — это импорт всего из пакета с помощью import * .

🚩 Оператор import * импортирует все функции и классы, которые могут конфликтовать с определяемыми вами функциями или функциями других импортируемых вами библиотек. Таким образом, всегда будет риск переопределения функции или переопределения переменной.

🚩 К тому же, при использовании import * сложно распознать, что импортируется из какой именно библиотеки, что снижает читабельность кода.

Поэтому хорошей практикой является импорт только необходимых методов/функций из пакета, такого как import function_name from package_name . ✔️

Например, импорт функции Counter из библиотеки коллекций

from collections import Counter

Что ж, если вы все же хотите импортировать все функции из пакета, вы можете сделать это, не говоря import * . Классический пример этого варианта использования — импорт всего из pandas для анализа данных.

❌ Плохая практика: from pandas import *

✔️ ️Хорошая практика: import pandas as pd

И тогда вы можете использовать все функции из пакета pandas с префиксом pd., например, pd.DataFrame()

Укажите исключение в Try-Except

Как и у любого новичка, у меня была плохая привычка не упоминать исключение в предложении except оператора try-except.

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

В идеале в a или b должна быть какая-то ошибка, но отсутствие упоминания исключения в предложении кроме исключения не дает нам представления о том, что происходит.

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

Это можно превратить в хорошую практику, упомянув исключение, как показано ниже.

Обработка NameError в предложении except дает нам точную причину невыполнения предложения try. ✔️

Вы можете найти все исключения в Python здесь, а подробности о том, как использовать try-except, можно найти здесь.

Используйте словарные методы

Возможно, вы знаете методы словаря .keys(), .values() и .items() для доступа только к ключам, значениям и парам ключ-значение соответственно.

Если вы не знаете, вот краткий пример.

# Create a dictionary with,
# keys 'A', 'B', 'C', 'D'
# values 1001, 2002, 3003, 4004 respectively
mydict = {'A': 1001,
          'B': 2002,
          'C': 3003,
          'D': 4004}

Как видно на рисунке выше, пару ключ — значение в виде кортежа можно извлечь с помощью .items().

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

В приведенном выше сценарии mydict.keys() в цикле for не нужен, а mydict[keys] в операторе печати менее эффективен. 🚩

Вместо этого мы можем использовать mydict.items(), который более эффективен, как показано ниже.

Таким образом, мы всегда можем распаковать ключи и значения из кортежей ключ-значение, сгенерированных методом .items(). ✔️

Если вы хотите узнать больше о словарях в Python, вот краткое чтение.



Используйте zip() для перебора нескольких списков

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

❌ Плохая практика выглядит,

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

Вместо этого используйте более удобочитаемую функцию zip(). По определению функция zip() в python используется для агрегирования элементов из нескольких итерируемых объектов поэлементно в итерацию кортежей. ✔️

Это свойство функции zip() можно использовать в цикле for для перебора нескольких итерируемых объектов (списков или словарей) в Python.

Просто это!

Откройте файл, используя «с»

Открытый файл должен быть закрыт сразу после завершения работы — это лучшая практика.

Я, как и миллионы других, использовал open, close, read, write для работы с файлами, как показано ниже,

f = open('new_file.txt', 'w')
f.write('This is first line')
f.close()

Проблема в том, что последняя строка f.close() в основном забыта! 🚩

И тогда, если методы write/read выкинут исключение, файл не будет закрыт.

Лучшей альтернативой здесь является использование with для открытия и редактирования файла, как показано ниже.

with open('new_file.txt', 'w') as f:
    f.write('This is first line')

Таким образом, вам не нужно закрывать файл исключительно. Как только вы пишете новую строку кода за пределами отступа оператора with, файл автоматически закрывается. ✔️

Надеюсь, вы быстро закончили эту статью и нашли ее полезной.

Принятие этих лучших практик может сэкономить огромное количество времени, потраченного на отладку и понимание кода в будущем. 💯

Я использую Python уже более 4 лет и до сих пор изучаю передовой опыт, чтобы улучшить качество своего кода. 💪

Хотите читать неограниченное количество историй на Medium??

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

💡 Не забудьте Подписаться на мою рассылку, чтобы получать первые экземпляры моих статей.

Спасибо, что прочитали!