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
Mensagem pronta para colar
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 pythonOu 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.mdConteú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
- Comprehensions & Generators
- Unpacking & Destructuring
- Built-ins & stdlib
- Functions & Defaults
- Classes & Dataclasses
- Error Handling
- Type Hints
- 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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4282
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC