πŸ’‘ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP 8 Python? ПолноС руководство ΠΏΠΎ стандартам оформлСния ΠΊΠΎΠ΄Π°!

PEP 8 Python - это соглашСниС ΠΎ стилС кодирования для языка Python, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ PEP (Python Enhancement Proposal) β„– 8. Оно опрСдСляСт стандартныС ΠΏΡ€Π°Π²ΠΈΠ»Π° для оформлСния ΠΊΠΎΠ΄Π° Π½Π° Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ понятным.

НСкоторыС основныС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ PEP 8:


# ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ_рСгистрС_с_подчСркиваниями
my_variable = 42
def my_function():
    pass

# ИмСна классов ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² CamelCase
class MyClass:
    pass

# ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа состоит ΠΈΠ· 4 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²
if condition:
    statement

# ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³
result = 10 + 20

# Π”Π»ΠΈΠ½Π° строки ΠΊΠΎΠ΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 79 символов
long_string = "This is a long string that should be wrapped"

# Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ Docstrings
def my_function():
    """ОписаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ"""
    pass
  

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP 8 Python?

PEP 8 (Python Enhancement Proposal 8) прСдставляСт собой руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ кодирования для языка Python. Он опрСдСляСт соглашСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

PEP 8 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с Ρ†Π΅Π»ΡŒΡŽ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ понятным ΠΈ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ совмСстной Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΊΠΎΠ΄Π° Π² долгосрочной пСрспСктивС.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° PEP 8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP 8 ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π½Π° Python.

1. ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

Одним ΠΈΠ· основных аспСктов PEP 8 являСтся ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π° для отступов вмСсто табуляции.
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ строки Π΄ΠΎ 79 символов.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΌΠ΅ΠΆΠ΄Ρƒ функциями ΠΈ классами для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ читаСмости.
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ послС запятых.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пустыС скобки ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

2. ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов

PEP 8 Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСт соглашСния ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ имСнования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ lowercase_with_underscores для ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ CapWords для ΠΈΠΌΠ΅Π½ классов.
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½, ΠΊΡ€ΠΎΠΌΠ΅ счСтчиков Ρ†ΠΈΠΊΠ»ΠΎΠ².

3. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… рСкомСндациям PEP 8:


# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ имСнования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
max_attempts = 3

def calculate_average(numbers):
    total = sum(numbers)
    average = total / len(numbers)
    return average

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ имСнования класса
class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model

    def start_engine(self):
        print(f"Starting the engine of {self.make} {self.model}.")
    

4. ИспользованиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ автоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° соотвСтствиС PEP 8:

  • Flake8: инструмСнт статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт соотвСтствиС PEP 8 ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ прСдупрСТдСния ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….
  • Black: инструмСнт автоматичСского форматирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄ ΠΊ стандартам PEP 8.
  • PyLint: инструмСнт статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт соотвСтствиС PEP 8 ΠΈ выполняСт Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ошибок.

ИспользованиС этих инструмСнтов ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс соблюдСния PEP 8 ΠΈ обСспСчит Π±ΠΎΠ»Π΅Π΅ качСствСнный ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

PEP 8 опрСдСляСт соглашСния ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ кодирования для языка Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ PEP 8 Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ соблюдСниС этих Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ рСкомСндуСтся для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ качСства ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π’ΠΎΡ‚ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π’Π²ΠΎΠΉ Код - Π“ΠΎΠ²Π½ΠΎ | Python PEP-8

Пиши ΠΊΠΎΠ΄ красиво | ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΎ PEP-8 | Python для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

Python PEP 8 - Π‘Ρ‚ΠΈΠ»ΡŒ Ρ‚Π²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСру Python: простой Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ utf 8 Π² Python: Π»Π΅Π³ΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… 😊

πŸ”Ž Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ минимальноС число Π² Python πŸ“‰ | ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² 🌱

πŸ’‘ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP 8 Python? ПолноС руководство ΠΏΠΎ стандартам оформлСния ΠΊΠΎΠ΄Π°!

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρƒ Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

🐍 Π§Π΅ΠΌ ΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½Π°? Π›ΡƒΡ‡ΡˆΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ питания для вашСго ΠΏΠΈΡ‚ΠΎΠ½Π° 🍽️

πŸ”’ Как Π½Π° Python ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сайт Π±Π΅Π· особых усилий: простой Π³Π°ΠΉΠ΄