Python Docstrings
Google Style (Recommended)
def calculate_total(items: list[Item], tax_rate: float = 0.0) -> float:
"""Calculate total cost including tax.
Args:
items: List of items to calculate total for.
tax_rate: Tax rate as decimal (e.g., 0.08 for 8%).
Returns:
Total cost including tax.
Raises:
ValueError: If tax_rate is negative or items is empty.
Example:
>>> calculate_total([Item(10), Item(20)], 0.1)
33.0
"""
NumPy Style
def calculate_total(items: list[Item], tax_rate: float = 0.0) -> float:
"""
Calculate total cost including tax.
Parameters
----------
items : list[Item]
List of items to calculate total for.
tax_rate : float, optional
Tax rate as decimal (e.g., 0.08 for 8%). Default is 0.0.
Returns
-------
float
Total cost including tax.
Raises
------
ValueError
If tax_rate is negative or items is empty.
Examples
--------
>>> calculate_total([Item(10), Item(20)], 0.1)
33.0
"""
Sphinx Style
def calculate_total(items: list[Item], tax_rate: float = 0.0) -> float:
"""Calculate total cost including tax.
:param items: List of items to calculate total for.
:type items: list[Item]
:param tax_rate: Tax rate as decimal (e.g., 0.08 for 8%).
:type tax_rate: float
:returns: Total cost including tax.
:rtype: float
:raises ValueError: If tax_rate is negative or items is empty.
.. code-block:: python
>>> calculate_total([Item(10), Item(20)], 0.1)
33.0
"""
Class Documentation
class UserService:
"""Service for managing user operations.
This service handles CRUD operations for users and
integrates with the authentication system.
Attributes:
db: Database session for queries.
cache: Redis client for caching.
Example:
>>> service = UserService(db, cache)
>>> user = await service.create_user(data)
"""
def __init__(self, db: AsyncSession, cache: Redis) -> None:
"""Initialize UserService.
Args:
db: Database session for queries.
cache: Redis client for caching.
"""
Quick Reference
| Style |
Args Format |
Returns Format |
| Google |
Args: block |
Returns: block |
| NumPy |
Parameters section |
Returns section |
| Sphinx |
:param name: |
:returns: |
Sections Available
| Section |
Google |
NumPy |
Sphinx |
| Parameters |
Args: |
Parameters |
:param: |
| Returns |
Returns: |
Returns |
:returns: |
| Raises |
Raises: |
Raises |
:raises: |
| Examples |
Example: |
Examples |
.. code-block:: |
| Notes |
Note: |
Notes |
.. note:: |
| Attributes |
Attributes: |
Attributes |
:ivar: |