Pular para o conteúdo
Skillpedia
Código em geral48 mil · #4282

python

Capacita seu agente a programar em Python. Essencial para automação, análise de dados e desenvolvimento web. Facilita a criação de scripts e aplicações complexas.

O que ela faz

Este guia ajuda você a escrever código Python de forma mais eficiente e clara. Ele mostra como usar recursos da linguagem para tornar seu código mais curto e fácil de entender, evitando erros comuns.

Quando usar

  • ✓Quando você quer escrever código Python mais limpo.
  • ✓Para aprender atalhos e boas práticas em Python.
  • ✓Ao refatorar código para torná-lo mais legível.

Exemplo do que pedir para a IA

“Como posso escrever uma lista de forma mais concisa em Python?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/super-code/python/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/super-code/python/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O guia compara exemplos de código 'ruim' com exemplos 'bons' que usam recursos específicos do Python. Ele sugere alternativas mais simples e diretas para tarefas comuns.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill python

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/super-code/python/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Python: Referência de Eficiência Idiomática

Quando Usar

  • Use esta habilidade quando a tarefa corresponder a esta descrição: Diretrizes de supercódigo específicas da linguagem para python.

Índice

  1. Comprehensions & Generators
  2. Unpacking & Destructuring
  3. Built-ins & stdlib
  4. Functions & Defaults
  5. Classes & Dataclasses
  6. Error Handling
  7. Type Hints
  8. Anti-patterns específicos do Python

1. Comprehensions & Generators {#comprehensions}

# ❌ Imperative accumulation
result = []
for item in items:
    if item.active:
        result.append(item.name.upper())

# ✅
result = [item.name.upper() for item in items if item.active]
# ❌ Dict built in a loop
d = {}
for k, v in pairs:
    d[k] = v

# ✅
d = dict(pairs)
# or
d = {k: v for k, v in pairs}
# ❌ Generator converted to list unnecessarily
total = sum(list(x * 2 for x in nums))

# ✅ — generator expression works directly in sum()
total = sum(x * 2 for x in nums)

Use expressões geradoras (não list comprehensions) quando o resultado for consumido uma vez e não armazenado.


2. Unpacking & Destructuring {#unpacking}

# ❌ Index access
first = items[0]
rest = items[1:]

# ✅
first, *rest = items
# ❌ Temporary variable for swap
tmp = a
a = b
b = tmp

# ✅
a, b = b, a
# ❌ items() with separate indexing
for i in range(len(items)):
    print(i, items[i])

# ✅
for i, item in enumerate(items):
    print(i, item)
# ❌ zip with separate index
for i in range(len(a)):
    process(a[i], b[i])

# ✅
for x, y in zip(a, b):
    process(x, y)

3. Built-ins & stdlib {#builtins}

# ❌ Manual max search
max_val = items[0]
for item in items[1:]:
    if item > max_val:
        max_val = item

# ✅
max_val = max(items)
# ❌ Manual grouping
from collections import defaultdict
groups = defaultdict(list)
for item in items:
    groups[item.category].append(item)

# ✅ — same thing, just be explicit about defaultdict; it IS the right tool
# (this example is already correct — don't replace defaultdict with a loop)
# ❌ Manual sentinel for dict default
if key in d:
    val = d[key]
else:
    val = default

# ✅
val = d.get(key, default)
# ❌ Rolling your own counter
counts = {}
for item in items:
    counts[item] = counts.get(item, 0) + 1

# ✅
from collections import Counter
counts = Counter(items)

Use itertools (chain, islice, groupby, product) antes de escrever loops aninhados para lógica combinatória ou de streaming.


4. Functions & Defaults {#functions}

# ❌ Mutable default argument (bug, not just style)
def append_to(item, lst=[]):
    lst.append(item)
    return lst

# ✅
def append_to(item, lst=None):
    if lst is None:
        lst = []
    lst.append(item)
    return lst
# ❌ Positional args for everything when keyword clarity helps
create_user("Alice", True, False, 30)

# ✅ — use keyword args at call site for boolean/ambiguous params
create_user("Alice", is_admin=True, is_active=False, age=30)
# ❌ Long function doing multiple things
def process_and_save(data):
    # 40 lines of transform
    # 20 lines of DB write
    ...

# ✅ — split only if each part is reused OR independently testable
def _transform(data): ...
def _save(record): ...
def process_and_save(data): _save(_transform(data))

5. Classes & Dataclasses {#classes}

# ❌ Manual __init__ for data holders
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

# ✅
from dataclasses import dataclass

@dataclass
class Point:
    x: float
    y: float
# ❌ Class just to hold a namespace of functions
class MathUtils:
    @staticmethod
    def add(a, b): return a + b

# ✅ — module-level functions; classes for state + behavior
def add(a, b): return a + b
# ❌ __repr__ written manually when dataclass gives it free
# (see above — use @dataclass)

Use @dataclass(frozen=True) para objetos de valor imutáveis. Use NamedTuple quando precisar de desempacotamento de tuplas.


6. Error Handling {#errors}

# ❌ Bare except
try:
    risky()
except:
    pass

# ✅ — catch the specific exception; don't swallow silently
try:
    risky()
except ValueError as e:
    logger.warning("Invalid value: %s", e)
# ❌ LBYL (look before you leap) quando EAFP é mais limpo

…
Perguntas frequentes

O que são 'Comprehensions & Generators'?

São formas mais curtas de criar listas ou sequências, substituindo loops tradicionais por uma única linha de código mais expressiva.

O que significa 'Unpacking & Destructuring'?

É uma técnica para extrair valores de listas ou tuplas diretamente em variáveis, tornando o código mais legível ao lidar com múltiplos valores.

Por que devo evitar 'Mutable default arguments'?

Usar listas ou dicionários como valores padrão em funções pode levar a comportamentos inesperados, pois o mesmo objeto é compartilhado entre chamadas.

Detalhes

Descrição original do autor

Language-specific super-code guidelines for python.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4282
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas