πŸ” Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Python: практичСскоС руководство ΠΏΠΎ созданию

Для написания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Sphinx. Sphinx - это популярная систСма докумСнтирования, которая позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ с использованиСм Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ reStructuredText.

Π’ΠΎΡ‚ шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Sphinx:

  1. УстановитС Sphinx, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
    pip install sphinx
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Sphinx с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
    sphinx-quickstart
  3. ВнСситС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Sphinx, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ index.rst ΠΈ conf.py, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ структуру ΠΈ настройки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
  4. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ .rst для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° вашСго ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
  5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ reStructuredText Π² Ρ„Π°ΠΉΠ»Π°Ρ… .rst для описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов вашСго ΠΊΠΎΠ΄Π°
  6. ЗапуститС сборку Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
    make html
  7. Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°Ρ докумСнтация Π±ΡƒΠ΄Π΅Ρ‚ собрана Π² ΠΏΠ°ΠΏΠΊΠ΅ "build/html" вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Sphinx

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ reStructuredText для описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python:


.. function:: def my_function(param1, param2):
   
   ОписаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ здСсь.
   
   :param param1: ОписаниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° 1
   :type param1: Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° 1
   :param param2: ОписаниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° 2
   :type param2: Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° 2
   :return: ОписаниС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния
   :rtype: Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния
   
   ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

   >>> my_function(1, 2)
   Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: 3
   

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

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Python

ДокумСнтация являСтся Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π° языкС Python. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ докумСнтация позволяСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ваш ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваши Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ классы, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ сопровоТдСниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² дальнСйшСм.

1. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

Π‘Π°ΠΌΡ‹ΠΉ простой способ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ - это Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² ваш ΠΊΠΎΠ΄. Π’ Python ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ со Π·Π½Π°ΠΊΠ° Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ (#). Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ опрСдСлСнная Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.


# Ѐункция, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму Π΄Π²ΡƒΡ… чисСл
def add_numbers(a, b):
    """
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму Π΄Π²ΡƒΡ… чисСл.
    
    :param a: ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число
    :param b: Π’Ρ‚ΠΎΡ€ΠΎΠ΅ число
    :return: Π‘ΡƒΠΌΠΌΠ° a ΠΈ b
    """
    return a + b
    

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ функция ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ doctest

Doctest - это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π²Π°ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прямо Π² коммСнтариях. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт для тСстирования ΠΈ докумСнтирования ΠΊΠΎΠ΄Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.


def multiply_numbers(a, b):
    """
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… чисСл.
    
    :param a: ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число
    :param b: Π’Ρ‚ΠΎΡ€ΠΎΠ΅ число
    :return: ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ a ΠΈ b
    
    >>> multiply_numbers(2, 3)
    6
    >>> multiply_numbers(5, 10)
    50
    """
    return a * b
    

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, doctest позволяСт Π²Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тСсты для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ прямо Π² коммСнтариях Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ ваша докумСнтация остаСтся Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ.

3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (docstrings)

Python прСдоставляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ docstrings. Π­Ρ‚ΠΎ многострочныС строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ классов ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для докумСнтирования ΠΈΡ… использования ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.


def divide_numbers(a, b):
    """
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ частноС Π΄Π²ΡƒΡ… чисСл.
    
    :param a: ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число
    :param b: Π’Ρ‚ΠΎΡ€ΠΎΠ΅ число
    :return: ЧастноС a ΠΈ b
    """
    return a / b
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ строка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (docstring), которая описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ docstrings ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ²

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² - это ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ новая функция Π² Python 3. Π’ΠΈΠΏΡ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса.


def greet(name: str) -> str:
    """
    ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
    
    :param name: Имя Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°
    :return: ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅
    """
    return f"ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {name}!"
    

Аннотации Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ ΠΈ понятной.

5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стандартныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

БущСствуСт нСсколько стандартных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для языка Python. Один ΠΈΠ· самых популярных - это Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ reStructuredText (reST), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Python.


class Rectangle:
    """
    Класс, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ.
    
    :param width: Π¨ΠΈΡ€ΠΈΠ½Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°
    :param height: Высота ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°
    """
    
    def __init__(self, width, height):
        self.width = width
        self.height = height
    
    def calculate_area(self):
        """
        ВычисляСт ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.
        
        :return: ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°
        """
        return self.width * self.height
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использован Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ reStructuredText (reST), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ классы, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

6. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ спСциализированныС инструмСнты

БущСствуСт мноТСство спСциализированных инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² Python. НСкоторыС ΠΈΠ· Π½ΠΈΡ… Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Sphinx, MkDocs ΠΈ Doxygen.

НапримСр, Sphinx - это популярный инструмСнт для создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HTML, PDF ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…. Он позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

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

НаписаниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ИспользованиС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², docstrings, тСстов doctest, Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ стандартных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ, Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Python. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ докумСнтация ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ усилия Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ docstring? Docstring in Python.

Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: Ρ€Π°Π±ΠΎΡ‚Π° с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ справочниками.

Π§ΠΈΡ‚Π°ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ! | Π’Ρ‹ сломали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

Как ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Python 3: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Как Π½Π°ΠΉΡ‚ΠΈ всС ΠΏΡƒΡ‚ΠΈ Π² Π³Ρ€Π°Ρ„Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? 🐍

⭐️УзнайтС, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅: tail python Ρ‡Ρ‚ΠΎ это + ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ инструкции

πŸ” Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Python: практичСскоС руководство ΠΏΠΎ созданию

πŸ“₯ Как ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ numpy python Π² pycharm - подробная инструкция

πŸ”’ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ русскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² Python?

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простыС шаги здСсь! 🐍