Receber por email
← Voltar para o catálogo

python-best-practices

Python coding best practices. Use when writing or reviewing Python code. Covers type hints, error handling, and common patterns.

87estrelas
Atualizado há 7 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add Taoidle/plan-cascade

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/python-best-practices-taoidle/svg)](https://www.skillteca.com.br/skills/python-best-practices-taoidle)

Alerta por categoria

Receba novas skills de Escrita e Conteúdo toda segunda

1 email curto, só com as skills novas de Escrita e Conteúdo. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Python Best Practices

Code Style

| Rule | Guideline | |------|-----------| | Formatter | ruff format or black | | Linter | ruff check with strict rules | | Type hints | Always for public APIs | | Docstrings | Google or NumPy style |

Type Hints

def process(items: list[str], max_count: int = 10) -> dict[str, int]: ...
def find_user(user_id: int) -> User | None: ...

Error Handling

| Rule | Guideline | |------|-----------| | Specific exceptions | Never bare except: | | Context managers | Use with for resources | | Early return | Validate inputs, fail fast |

# Good
try:
    result = process(data)
except ValidationError as e:
    logger.warning(f"Validation failed: {e}")
    return default

Project Structure

src/package_name/
├── __init__.py
├── core/
└── py.typed
tests/
├── conftest.py
└── test_*.py
pyproject.toml

Common Patterns

| Pattern | Usage | |---------|-------| | @dataclass | Data containers | | @property | Computed attributes | | Generators | Memory-efficient iteration | | functools.cache | Memoization |

Anti-Patterns

| Avoid | Use Instead | |-------|-------------| | Mutable default args | None default, create inside | | import * | Explicit imports | | Global state | Dependency injection |

# Bad: def add(item, items=[]): ...
# Good:
def add(item, items=None):
    items = items or []
    items.append(item)
    return items

Tools

| Tool | Purpose | |------|---------| | pytest | Testing | | ruff | Linting + formatting | | mypy | Type checking | | uv | Dependencies |

Compartilhar X LinkedIn