«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Лучшие практики Python: написание чистого, эффективного и поддерживаемого кода

Лучшие практики Python: написание чистого, эффективного и поддерживаемого кода

Опубликовано 6 ноября 2024 г.
Просматривать:620

Python Best Practices: Writing Clean, Efficient, and Maintainable Code

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

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

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


1. Соблюдайте рекомендации PEP 8.

PEP 8 — это руководство по стилю кода Python, предоставляющее соглашения для форматирования и структурирования вашего кода.

Некоторые ключевые моменты PEP 8 включают:

  • Отступ: используйте 4 пробела на каждый уровень отступа.
  • Длина строки: ограничьте длину всех строк до 79 символов.
  • Пустые строки: разделяйте определения функций и классов верхнего уровня двумя пустыми строками, а определения методов внутри класса — одной пустой строкой.
  • Импорт: размещайте импорт в верхней части файла, сгруппировав его в следующем порядке: импорт стандартной библиотеки, связанный сторонний импорт и импорт, специфичный для локального приложения/библиотеки.

Соблюдение PEP 8 делает ваш код более читабельным и совместимым с другими базами кода Python.


2. Напишите описательные и краткие имена переменных.

Выбирайте описательные, но краткие имена переменных.

Избегайте однобуквенных переменных, за исключением случаев, таких как счетчики циклов.
Например:

# Bad
a = 10

# Good
number_of_users = 10

Описательные имена переменных делают ваш код понятным, уменьшая необходимость в обширных комментариях и облегчая понимание другим (и вам в будущем).


3. Использование списков и выражений-генераторов

Понимание списков и выражения-генераторы предоставляют краткий способ создания списков и генераторов.

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

# List comprehension
squares = [x**2 for x in range(10)]

# Generator expression
squares_gen = (x**2 for x in range(10))

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

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


Глава 4. Используйте встроенные функции и библиотеки Python.

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

Например, вместо того, чтобы писать собственную функцию для поиска максимума в списке, используйте встроенную в Python функцию max().

# Bad
def find_max(lst):
    max_val = lst[0]
    for num in lst:
        if num > max_val:
            max_val = num
    return max_val

# Good
max_val = max(lst)


Использование встроенных функций и библиотек позволяет сэкономить время и снизить вероятность ошибок.


5. Следуйте принципу DRY (не повторяйтесь).

Избегайте дублирования кода.

Если вы обнаружите, что пишете один и тот же код несколько раз, рассмотрите возможность его рефакторинга в функцию или класс.

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

# Bad
def print_user_details(name, age):
    print(f"Name: {name}")
    print(f"Age: {age}")

def print_product_details(product, price):
    print(f"Product: {product}")
    print(f"Price: {price}")

# Good
def print_details(label, value):
    print(f"{label}: {value}")

Принцип DRY приводит к созданию более модульного и многократно используемого кода.


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

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

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

# 
Create a virtual environment
python -m venv myenv

# Activate the virtual environment
source myenv/bin/activate  # On Windows: myenv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Использование виртуальных сред гарантирует, что зависимости вашего проекта изолированы и легко воспроизводимы.


7 — Написание модульных тестов

Написание тестов имеет решающее значение для обеспечения правильной работы вашего кода и предотвращения регрессий при внесении изменений.

Модуль unittest Python — отличная отправная точка для написания тестов.

import unittest

def add(a, b):
    return a   b

class TestMathFunctions(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)
        self.assertEqual(add(-1, 1), 0)

if __name__ == '__main__':
    unittest.main()

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


8. Используйте содержательные комментарии и строки документации.

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

Используйте комментарии экономно и сосредоточьтесь на том, почему вы что-то сделали, а не на том, что вы сделали.

def calculate_discount(price, discount):
    """
    Calculate the price after applying the discount.

    Args:
    price (float): Original price
    discount (float): Discount percentage (0-100)

    Returns:
    float: Final price after discount
    """
    return price * (1 - discount / 100)

Хорошие комментарии и строки документации улучшают удобство сопровождения и использования вашего кода.


9. Грамотная обработка исключений

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

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

try:
    with open('data.txt', 'r') as file:
        data = file.read()
except FileNotFoundError:
    print("File not found. Please check the file path.")
except Exception as e:
    print(f"An unexpected error occurred: {e}")

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


10. Сохраняйте модульность кода

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

Разбейте свой код на более мелкие, многократно используемые функции и классы.

Каждая функция или класс должна иметь одну ответственность.

# Bad
def process_data(data):
    # Load data
    # Clean data
    # Analyze data
    # Save results

# Good
def load_data(path):
    pass

def clean_data(data):
    pass

def analyze_data(data):
    pass

def save_results(results):
    pass

Модульность повышает ясность кода и возможность повторного использования, упрощая его отладку и расширение.


Заключение

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

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

Помните, что программирование — это не просто заставить вещи работать; речь идет о том, чтобы заставить их работать хорошо сейчас и в будущем.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/devasservice/python-best-practices-writing-clean-efficient-and-maintainable-code-34bj?1. В случае нарушения прав обращайтесь по адресу [email protected]. удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3