💡 Curiosidades sobre a versão 3.11.9
📋 PALAVRAS RESERVADAS (35 comandos de sintaxe)
⚙️ Palavras Reservadas (Keywords): São cerca de 35 palavras que formam a sintaxe base da linguagem (como if, for, def, while). Uma lista completa e atualizada para sua versão pode ser gerada diretamente no seu computador usando o comando help("keywords") dentro do interpretador Python .
False, True, None, and, or, not, if, elif, else, for, while, break, continue, pass, def, return, lambda, global, nonlocal, import, from, as, with, try, except, finally, raise, assert, class, del, is, in, await, async, yield
📝 Regras para nomear variáveis em Python
| Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ | Motivo do Erro |
|---|---|---|---|
| Começar com letra (a-z, A-Z) ou underscore (_) | nome, _valor, Idade, _, variavel2 | 2nome, @nome, -var, $preco | Nomes não podem começar com números ou caracteres especiais |
| Sem espaços | nome_completo, enderecoCliente, valorTotal | nome completo, meu nome, endereco cliente | Espaços não são permitidos (usar _ ou CamelCase) |
| Apenas letras, números e underscore (_) | preco_total_1, valor2, temp, x1y2 | preço_total, valor-total, nome$, arquivo.txt | Acentos, hífens e caracteres especiais são proibidos |
| Case-sensitive (maiúscula/minúscula diferentes) | nome != Nome != NOME | Nome = nome? Falso | Todas são variáveis diferentes (Python diferencia) |
| Não pode ser palavra reservada | nome_variavel, valor, minha_classe | if, for, while, class, def, return | Palavras que fazem parte da sintaxe do Python |
| Não começar com números | variavel1, _2teste, num2 | 2variavel, 123nome, 999preco | Primeiro caractere não pode ser número |
| Não usar hífen (-) | nome_cliente, dataNascimento | nome-cliente, data-nascimento | Hífen é interpretado como operador de subtração |
| Categoria | Palavras Proibidas |
|---|---|
| Comandos | if, else, elif, for, while, break, continue, pass |
| Valores | True, False, None |
| Funções | def, return, lambda, yield |
| Classes | class, del |
| Módulos | import, from, as |
| Exceções | try, except, finally, raise, assert |
| Operadores | and, or, not, is, in |
| Escopo | global, nonlocal |
| Assíncrono | async, await |
| Contexto | with |
| Verificação | Regra | Status |
|---|---|---|
| 1º caractere | É letra ou _ ? | ✅ ou ❌ |
| Sem espaços | Não contém " " ? | ✅ ou ❌ |
| Caracteres válidos | Só letras, números, _ ? | ✅ ou ❌ |
| Não é reservada | Não está na lista? | ✅ ou ❌ |
| Tipo de Variável | Correto ✅ | Errado ❌ |
|---|---|---|
| Nome simples | nome, idade, preco | nome completo, idade!, preço |
| Composto | nome_cliente, valor_total | nome-cliente, valor total |
| Número | valor1, _2pontos, num3 | 1valor, 2teste, 3amigos |
| Privado | _interno, _temp, __secreto | @interno, #temp, $secreto |
| Constante | PI, TAXA_JUROS, MAXIMO | pi!, taxa juros, MÁXIMO |
| Loop | i, j, k, item, x | 1i, @j, for (reservada) |
| Erro | Exemplo ERRADO | Correção |
|---|---|---|
| Acentuação | nome_cliente | nome_cliente |
| Espaço invisível | nome cliente | nome_cliente ou nomeCliente |
| Começar com número | 1nome | nome1 ou _1nome |
| Palavra reservada | class = "Python" | classe = "Python" ou turma = "Python" |
| Hífen | nome-cliente | nome_cliente |
| Tentativa | Nome da Variável | Válido? | Motivo |
|---|---|---|---|
| 1 | _id | ✅ | Começa com _ |
| 2 | 2pac | ❌ | Começa com número |
| 3 | nome_do_usuario | ✅ | Válido (snake_case) |
| 4 | class | ❌ | Palavra reservada |
| 5 | valor-total | ❌ | Hífen não permitido |
| 6 | preço | ❌ | Acento não permitido |
| 7 | PI | ✅ | Constante (maiúscula) |
| 8 | nome completo | ❌ | Espaço não permitido |
| 9 | _123 | ✅ | Começa com _, depois números |
| 10 | while | ❌ | Palavra reservada |
| Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ | Motivo do Erro |
|---|---|---|---|
| Começar com letra (a-z, A-Z) ou underscore (_) | calcular, _validar, buscarDados | 2calcular, @validar, -buscar | Nomes não podem começar com números ou caracteres especiais |
| Sem espaços | calcular_total, buscarCliente | calcular total, buscar cliente | Espaços não são permitidos |
| Apenas letras, números e underscore (_) | calcular_media_2, buscar_por_id | calcular-média, buscar@id, calcular$ | Caracteres especiais e acentos são proibidos |
| Case-sensitive | calcular != Calcular != CALCULAR | Calcular = calcular? Falso | São funções diferentes |
| Não pode ser palavra reservada | calcular_valor, buscar_dados | def, if, for, return, class | Palavras que fazem parte da sintaxe do Python |
| Convenção | Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ |
|---|---|---|---|
| snake_case | Todas minúsculas, palavras separadas por _ | calcular_total, buscar_cliente_por_id, validar_email | calcularTotal, CalcularTotal, calcular.total |
| verbos no início | Função faz ação, use verbos | calcular_media(), buscar_usuario(), enviar_email() | media(), usuario(), email() (parecem variáveis) |
| nomes descritivos | Deixar claro o que faz | calcular_imposto_de_renda() | calc(), f(), x() |
| tamanho médio | 2-4 palavras ideal | validar_cpf(), converter_para_json() | v(), calcular_imposto_sobre_produto_vencido_em_2024() |
| booleanos | Começar com is_, has_, can_ | is_valid(), has_permission(), can_edit() | valid(), permission(), editable() |
| Ação | Prefixo | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Calcular | calcular_ | calcular_total(), calcular_media() | total(), media_calcular() |
| Buscar/Obter | buscar_, obter_, get_ | buscar_usuario(), obter_dados(), get_nome() | usuario(), dados() |
| Validar | validar_, verificar_ | validar_email(), verificar_idade() | email(), idade_verificar() |
| Converter | converter_, transformar_, to_ | converter_para_json(), to_string(), to_int() | json(), string() |
| Criar/Gerar | criar_, gerar_, build_ | criar_arquivo(), gerar_relatorio(), build_url() | arquivo(), relatorio() |
| Enviar | enviar_, mandar_ | enviar_email(), mandar_mensagem() | email(), mensagem() |
| Carregar | carregar_, load_ | carregar_dados(), load_config() | dados(), config() |
| Salvar | salvar_, save_ | salvar_arquivo(), save_dados() | arquivo(), dados_salvar() |
| Verificar | verificar_, checar_, check_ | verificar_conexao(), check_status() | conexao(), status() |
| Inicializar | inicializar_, init_, setup_ | inicializar_sistema(), setup_config() | sistema(), config_iniciar() |
| Regra | Exemplo ✅ | Exemplo ❌ |
|---|---|---|
| Começar com is_ | is_valid(), is_active(), is_admin() | valid(), active(), admin() |
| Começar com has_ | has_permission(), has_access(), has_children() | permission(), access(), children() |
| Começar com can_ | can_edit(), can_delete(), can_upload() | edit(), delete(), upload() |
| Começar com should_ | should_update(), should_notify() | update(), notify() |
| Categoria | Palavras Proibidas |
|---|---|
| Comandos | if, else, elif, for, while, break, continue, pass |
| Definição | def, return, lambda, yield |
| Classes | class, del |
| Módulos | import, from, as |
| Exceções | try, except, finally, raise, assert |
| Operadores | and, or, not, is, in |
| Escopo | global, nonlocal |
| Assíncrono | async, await |
| Contexto | with |
| Valores | True, False, None |
| Ruim ❌ | Bom ✅ | Por quê? |
|---|---|---|
| def f(x): | def calcular_dobro(valor): | Nome descritivo explica o que faz |
| def process(): | def processar_pagamento(pedido): | Especifica o que está processando |
| def calc(a,b): | def calcular_media(nota1, nota2): | Clareza no cálculo e parâmetros |
| def val(): | def validar_cpf(cpf): | Sabe exatamente o que valida |
| def get(): | def buscar_usuario_por_id(id): | Sabe o que está buscando |
| def do(): | def executar_backup(): | Ação específica |
| def handle(): | def tratar_erro_conexao(): | Qual erro está tratando |
| def check(): | def verificar_disponibilidade(): | O que está verificando |
| Estilo | Quando usar | Exemplo |
|---|---|---|
| snake_case | ✅ SEMPRE (padrão Python) | calcular_total(), buscar_cliente() |
| camelCase | ❌ Evitar (usado em Java/JS) | calcularTotal(), buscarCliente() |
| PascalCase | ❌ Proibido (usado para CLASSES) | CalcularTotal(), BuscarCliente() |
| UPPER_CASE | ❌ Proibido (usado para CONSTANTES) | CALCULAR_TOTAL(), BUSCAR_CLIENTE() |
| _privado | ✅ Permitido (função interna) | _calcular_interno(), _validar_dados() |
| __privado | ✅ Permitido (name mangling) | __calcular_saldo() |
| Verificação | Regra | Status |
|---|---|---|
| 1º caractere | É letra (a-z) ou _ ? | ✅ ou ❌ |
| Todos caracteres | Só letras, números, _ ? | ✅ ou ❌ |
| Sem espaços | Não contém espaços? | ✅ ou ❌ |
| snake_case | Todas minúsculas com _ ? | ✅ ou ❌ |
| Verbo no início | Começa com ação? | ✅ ou ❌ |
| Descritivo | Dá pra saber o que faz? | ✅ ou ❌ |
| Não é reservada | Não está na lista? | ✅ ou ❌ |
| Erro | Exemplo ERRADO | Correção ✅ |
|---|---|---|
| Nome genérico | def faz(): | def processar_pagamento(): |
| Sem verbo | def cliente(): | def buscar_cliente(): |
| Muito curto | def cv(): | def converter_para_json(): |
| Muito longo | def calcular_imposto_sobre_produto_importado_do_brasil(): | def calcular_imposto_importacao(): |
| Acentuação | def calcular_média(): | def calcular_media(): |
| Hífen | def calcular-total(): | def calcular_total(): |
| Palavra reservada | def return(): | def calcular_retorno(): |
| CamelCase | def calcularTotal(): | def calcular_total(): |
| Tentativa | Nome da Função | Válido? | Regra |
|---|---|---|---|
| 1 | calcular_media() | ✅ | snake_case, verbo, descritivo |
| 2 | CalcularMedia() | ❌ | Usou PascalCase (é para classes) |
| 3 | calcularMedia() | ❌ | Usou camelCase (não é Python) |
| 4 | 2calcular() | ❌ | Começou com número |
| 5 | calcular-total() | ❌ | Usou hífen |
| 6 | def() | ❌ | Palavra reservada |
| 7 | buscar_usuario_por_id() | ✅ | Descritivo, segue regras |
| 8 | is_valido() | ✅ | Função booleana com is_ |
| 9 | _processar_interno() | ✅ | Função privada (convenção) |
| 10 | f() | ❌ | Nome muito genérico |
| Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ | Motivo do Erro |
|---|---|---|---|
| Começar com letra (a-z, A-Z) ou underscore (_) | calcular, _validar, buscarDados | 2calcular, @validar, -buscar | Nomes não podem começar com números ou caracteres especiais |
| Sem espaços | calcular_total, buscarCliente | calcular total, buscar cliente | Espaços não são permitidos |
| Apenas letras, números e underscore (_) | calcular_media_2, buscar_por_id | calcular-média, buscar@id, calcular$ | Caracteres especiais e acentos são proibidos |
| Case-sensitive | calcular != Calcular != CALCULAR | Calcular = calcular? Falso | São funções diferentes |
| Não pode ser palavra reservada | calcular_valor, buscar_dados | def, if, for, return, class | Palavras que fazem parte da sintaxe do Python |
| Convenção | Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ |
|---|---|---|---|
| snake_case | Todas minúsculas, palavras separadas por _ | calcular_total, buscar_cliente_por_id, validar_email | calcularTotal, CalcularTotal, calcular.total |
| verbos no início | Função faz ação, use verbos | calcular_media(), buscar_usuario(), enviar_email() | media(), usuario(), email() (parecem variáveis) |
| nomes descritivos | Deixar claro o que faz | calcular_imposto_de_renda() | calc(), f(), x() |
| tamanho médio | 2-4 palavras ideal | validar_cpf(), converter_para_json() | v(), calcular_imposto_sobre_produto_vencido_em_2024() |
| booleanos | Começar com is_, has_, can_ | is_valid(), has_permission(), can_edit() | valid(), permission(), editable() |
| Ação | Prefixo | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Calcular | calcular_ | calcular_total(), calcular_media() | total(), media_calcular() |
| Buscar/Obter | buscar_, obter_, get_ | buscar_usuario(), obter_dados(), get_nome() | usuario(), dados() |
| Validar | validar_, verificar_ | validar_email(), verificar_idade() | email(), idade_verificar() |
| Converter | converter_, transformar_, to_ | converter_para_json(), to_string(), to_int() | json(), string() |
| Criar/Gerar | criar_, gerar_, build_ | criar_arquivo(), gerar_relatorio(), build_url() | arquivo(), relatorio() |
| Enviar | enviar_, mandar_ | enviar_email(), mandar_mensagem() | email(), mensagem() |
| Carregar | carregar_, load_ | carregar_dados(), load_config() | dados(), config() |
| Salvar | salvar_, save_ | salvar_arquivo(), save_dados() | arquivo(), dados_salvar() |
| Verificar | verificar_, checar_, check_ | verificar_conexao(), check_status() | conexao(), status() |
| Inicializar | inicializar_, init_, setup_ | inicializar_sistema(), setup_config() | sistema(), config_iniciar() |
| Regra | Exemplo ✅ | Exemplo ❌ |
|---|---|---|
| Começar com is_ | is_valid(), is_active(), is_admin() | valid(), active(), admin() |
| Começar com has_ | has_permission(), has_access(), has_children() | permission(), access(), children() |
| Começar com can_ | can_edit(), can_delete(), can_upload() | edit(), delete(), upload() |
| Começar com should_ | should_update(), should_notify() | update(), notify() |
| Categoria | Palavras Proibidas |
|---|---|
| Comandos | if, else, elif, for, while, break, continue, pass |
| Definição | def, return, lambda, yield |
| Classes | class, del |
| Módulos | import, from, as |
| Exceções | try, except, finally, raise, assert |
| Operadores | and, or, not, is, in |
| Escopo | global, nonlocal |
| Assíncrono | async, await |
| Contexto | with |
| Valores | True, False, None |
| Ruim ❌ | Bom ✅ | Por quê? |
|---|---|---|
| def f(x): | def calcular_dobro(valor): | Nome descritivo explica o que faz |
| def process(): | def processar_pagamento(pedido): | Especifica o que está processando |
| def calc(a,b): | def calcular_media(nota1, nota2): | Clareza no cálculo e parâmetros |
| def val(): | def validar_cpf(cpf): | Sabe exatamente o que valida |
| def get(): | def buscar_usuario_por_id(id): | Sabe o que está buscando |
| def do(): | def executar_backup(): | Ação específica |
| def handle(): | def tratar_erro_conexao(): | Qual erro está tratando |
| def check(): | def verificar_disponibilidade(): | O que está verificando |
| Estilo | Quando usar | Exemplo |
|---|---|---|
| snake_case | ✅ SEMPRE (padrão Python) | calcular_total(), buscar_cliente() |
| camelCase | ❌ Evitar (usado em Java/JS) | calcularTotal(), buscarCliente() |
| PascalCase | ❌ Proibido (usado para CLASSES) | CalcularTotal(), BuscarCliente() |
| UPPER_CASE | ❌ Proibido (usado para CONSTANTES) | CALCULAR_TOTAL(), BUSCAR_CLIENTE() |
| _privado | ✅ Permitido (função interna) | _calcular_interno(), _validar_dados() |
| __privado | ✅ Permitido (name mangling) | __calcular_saldo() |
| Verificação | Regra | Status |
|---|---|---|
| 1º caractere | É letra (a-z) ou _ ? | ✅ ou ❌ |
| Todos caracteres | Só letras, números, _ ? | ✅ ou ❌ |
| Sem espaços | Não contém espaços? | ✅ ou ❌ |
| snake_case | Todas minúsculas com _ ? | ✅ ou ❌ |
| Verbo no início | Começa com ação? | ✅ ou ❌ |
| Descritivo | Dá pra saber o que faz? | ✅ ou ❌ |
| Não é reservada | Não está na lista? | ✅ ou ❌ |
| Erro | Exemplo ERRADO | Correção ✅ |
|---|---|---|
| Nome genérico | def faz(): | def processar_pagamento(): |
| Sem verbo | def cliente(): | def buscar_cliente(): |
| Muito curto | def cv(): | def converter_para_json(): |
| Muito longo | def calcular_imposto_sobre_produto_importado_do_brasil(): | def calcular_imposto_importacao(): |
| Acentuação | def calcular_média(): | def calcular_media(): |
| Hífen | def calcular-total(): | def calcular_total(): |
| Palavra reservada | def return(): | def calcular_retorno(): |
| CamelCase | def calcularTotal(): | def calcular_total(): |
| Tentativa | Nome da Função | Válido? | Regra |
|---|---|---|---|
| 1 | calcular_media() | ✅ | snake_case, verbo, descritivo |
| 2 | CalcularMedia() | ❌ | Usou PascalCase (é para classes) |
| 3 | calcularMedia() | ❌ | Usou camelCase (não é Python) |
| 4 | 2calcular() | ❌ | Começou com número |
| 5 | calcular-total() | ❌ | Usou hífen |
| 6 | def() | ❌ | Palavra reservada |
| 7 | buscar_usuario_por_id() | ✅ | Descritivo, segue regras |
| 8 | is_valido() | ✅ | Função booleana com is_ |
| 9 | _processar_interno() | ✅ | Função privada (convenção) |
| 10 | f() | ❌ | Nome muito genérico |
| Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ | Motivo do Erro |
|---|---|---|---|
| Começar com letra (A-Z) ou underscore (_) | Cliente, _ClienteInterno, PessoaFisica | 2Cliente, @Cliente, -Cliente | Nomes não podem começar com números ou caracteres especiais |
| Sem espaços | ClienteVip, EnderecoEntrega | Cliente Vip, Endereco Entrega | Espaços não são permitidos |
| Apenas letras, números e underscore (_) | Cliente_1, Endereco2, Pessoa_Fisica | Cliente-Vip, Endereço, Cliente$ | Caracteres especiais e acentos são proibidos |
| Case-sensitive | Cliente != cliente != CLIENTE | Cliente = cliente? Falso | São classes diferentes |
| Não pode ser palavra reservada | MinhaClasse, ClienteEspecial | class, def, if, for, while | Palavras que fazem parte da sintaxe do Python |
| Convenção | Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ |
|---|---|---|---|
| PascalCase | Primeira letra de cada palavra maiúscula | ClienteVip, EnderecoEntrega, PessoaFisica | clienteVip, Cliente_vip, CLIENTE_VIP |
| Nomes substantivos | Classe representa um objeto/coisa | Carro, Usuario, Produto, Pagamento | Calcular, Buscar, Validar (parecem funções) |
| Nomes singulares | Representa UM objeto | Cliente, Pedido, Item | Clientes, Pedidos, Itens |
| Nomes descritivos | Deixar claro o que representa | NotaFiscalEletronica, EnderecoCompleto | NFE, End, Cli |
| Tamanho médio | 2-3 palavras ideal | CadastroCliente, RelatorioVendas | C, ClienteDoSistemaDePagamentoIntegrado |
| Tipo de Classe | Sufixo/Prefixo | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Entidade/Modelo | Nome do conceito | Usuario, Produto, Pedido | UsuarioClass, ProdutoModelo |
| Serviço/Utilitário | Service, Manager, Util | EmailService, PagamentoManager, ArquivoUtil | Email, Pagamento, Arquivo |
| Repositório/Dados | Repository, DAO, Gateway | UsuarioRepository, PedidoDAO | UsuarioDB, PedidoDados |
| Controle/Controller | Controller, Handler, Processor | PagamentoController, ArquivoHandler | Pagamento, Arquivo |
| Fábrica/Criador | Factory, Builder, Creator | UsuarioFactory, PedidoBuilder | CriaUsuario, ConstrutorPedido |
| Configuração | Config, Settings, Options | DatabaseConfig, AppSettings | DB, Configuracoes |
| Exceção | Exception, Error | SaldoInsuficienteException, ErroValidacao | SaldoInsuficiente, Erro |
| Classe Abstrata | ABC (Abstract Base Class) | VeiculoABC, AnimalABC | VeiculoAbstrato |
| Interface (Protocolo) | Protocol (Python 3.8+) | ComparableProtocol, SerializableProtocol | IComparable (não é Python) |
| Tipo | Padrão | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Classe base/abstrata | ABC no nome ou herda de ABC | VeiculoABC, AnimalBase | VeiculoAbstrato, AnimalPai |
| Mixin | Mixin no final | LoggingMixin, JsonMixin, SerializableMixin | Logging, Json, Serializable |
| Exceção | Exception no final | ErroValidacaoException, ConexaoException | ErroValidacaoErro, ValidacaoFalhou |
| Constantes | Constants, Config | CoresConstants, AppConfig | CORES, CONFIG (Parece constante, não classe) |
| DTO (Data Transfer) | DTO no final | UsuarioDTO, PedidoDTO, EnderecoDTO | UsuarioDados, PedidoInfo |
| Builder | Builder no final | ConsultaBuilder, QueryBuilder | ConstruirConsulta, MontarQuery |
| Factory | Factory no final | ConexaoFactory, UsuarioFactory | CriarConexao, FabricaUsuarios |
| Categoria | Palavras Proibidas |
|---|---|
| Comandos | if, else, elif, for, while, break, continue, pass |
| Definição | def, return, lambda, yield |
| Classes | class, del |
| Módulos | import, from, as |
| Exceções | try, except, finally, raise, assert |
| Operadores | and, or, not, is, in |
| Escopo | global, nonlocal |
| Assíncrono | async, await |
| Contexto | with |
| Valores | True, False, None |
| Ruim ❌ | Bom ✅ | Por quê? |
|---|---|---|
| class c: | class Cliente: | Nome descritivo em vez de uma letra |
| class cliente: | class Cliente: | PascalCase (primeira letra maiúscula) |
| class CLIENTE_VIP: | class ClienteVip: | Não usar UPPER_CASE (é para constantes) |
| class calcular_imposto: | class CalculadoraImposto: | Classe é substantivo, não verbo |
| class Clientes: | class Cliente: | Singular em vez de plural |
| class usuario_class: | class Usuario: | Evitar redundância (Class) |
| class f: | class Funcionario: | Nome descritivo |
| class dados_do_banco: | class DadosBanco: | snake_case é para funções/variáveis |
| Tipo | Padrão de Nome | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Classe base (pai) | Nome genérico | Animal, Veiculo, FormaGeometrica | AnimalBase, VeiculoPai |
| Classe filha (específica) | Nome específico | Cachorro, Carro, Circulo | AnimalCachorro, VeiculoCarro |
| Classe abstrata | ABC no final ou herda de ABC | AnimalABC, FormaGeometricaABC | AnimalAbstrato |
| Interface (Protocol) | Nome descritivo + Protocol | ComparableProtocol, SerializableProtocol | IComparable (C#) |
| Verificação | Regra | Status |
|---|---|---|
| 1º caractere | É letra maiúscula (A-Z)? | ✅ ou ❌ |
| Todos caracteres | Só letras, números, _ ? | ✅ ou ❌ |
| Sem espaços | Não contém espaços? | ✅ ou ❌ |
| PascalCase | Primeira letra de cada palavra maiúscula? | ✅ ou ❌ |
| Substantivo | É um nome (não verbo)? | ✅ ou ❌ |
| Singular | Representa UM objeto? | ✅ ou ❌ |
| Descritivo | Dá pra saber o que representa? | ✅ ou ❌ |
| Não é reservada | Não está na lista de palavras reservadas? | ✅ ou ❌ |
| Erro | Exemplo ERRADO | Correção ✅ |
|---|---|---|
| Letra minúscula | class cliente: | class Cliente: |
| snake_case | class cliente_vip: | class ClienteVip: |
| UPPER_CASE | class CLIENTE_ABC: | class ClienteABC: |
| Nome genérico | class dados: | class DadosUsuario: |
| Verbo no nome | class calcular_imposto: | class CalculadoraImposto: |
| Plural | class Clientes: | class Cliente: |
| Acabado com Class | class ClienteClass: | class Cliente: |
| Acentuação | class ClienteÚnico: | class ClienteUnico: |
| Palavra reservada | class class: | class MinhaClasse: |
| Hífen | class Cliente-Vip: | class ClienteVip: |
| Contexto | Exemplo de Nome ✅ | Exemplo ❌ |
|---|---|---|
| Usuário do sistema | Usuario, UsuarioAutenticado, PerfilUsuario | user, usuario_sistema, USUARIO |
| Produto | Produto, ProdutoDigital, ProdutoFisico | product, produto_digital, PRODUTO |
| Pedido | Pedido, PedidoItem, CarrinhoCompras | pedido, order, PEDIDO |
| Pagamento | Pagamento, CartaoCredito, Boleto | pagamento, payment, PAGAMENTO |
| Conexão | ConexaoBanco, ConexaoAPI, DatabaseConnection | conexao, conn, CONEXAO |
| Configuração | ConfiguracaoApp, DatabaseConfig, Settings | config, cfg, CONFIGURACAO |
| Arquivo | ArquivoCSV, ArquivoXML, FileProcessor | arquivo, file, ARQUIVO |
| Relatório | RelatorioVendas, RelatorioPDF, ReportGenerator | relatorio, report, RELATORIO |
| Validação | ValidadorCPF, ValidadorEmail, DataValidator | validador, validator, VALIDACAO |
| Formulário | FormularioCadastro, LoginForm, FormData | form, Formulario, FORM |
| Camada | Sufixo | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Apresentação (View) | View, Form, Tela | LoginView, CadastroForm, TelaPrincipal | Login, Cadastro, Principal |
| Controle (Controller) | Controller | UsuarioController, PedidoController | Usuario, Pedido |
| Serviço (Service) | Service | UsuarioService, EmailService | Usuario, Email |
| Repositório (Repository) | Repository | UsuarioRepository, PedidoRepository | UsuarioDB, PedidoDados |
| Modelo (Model) | Nome direto | Usuario, Pedido, Produto | UsuarioModel, PedidoModelo |
| DTO (Data Transfer) | DTO | UsuarioDTO, PedidoDTO | UsuarioDados, PedidoInfo |
| Utilitário (Utils) | Util, Helper | DataUtil, StringHelper | DataUtils, HelperString |
| Domínio | Exemplos Corretos ✅ | Exemplos Errados ❌ |
|---|---|---|
| Bancário | ContaBancaria, Transacao, Extrato, ClienteBanco | conta, transacao, extrato, cliente |
| Comércio | CarrinhoCompras, Produto, Pedido, Pagamento | carrinho, produto, pedido, pagamento |
| Educação | Aluno, Professor, Turma, Disciplina, Matricula | aluno, professor, turma, disciplina |
| Saúde | Paciente, Medico, Consulta, Prontuario, Exame | paciente, medico, consulta, prontuario |
| Recursos Humanos | Funcionario, Departamento, Cargo, FolhaPagamento | funcionario, departamento, cargo |
| Logística | Transportadora, Rota, Entrega, Caminhao, Motorista | transportadora, rota, entrega |
| Tentativa | Nome da Classe | Válido? | Regra Aplicada |
|---|---|---|---|
| 1 | ClienteVip | ✅ | PascalCase, substantivo, descritivo |
| 2 | clienteVip | ❌ | Deveria ser PascalCase (primeira letra maiúscula) |
| 3 | Cliente_Vip | ❌ | Não usar underscore em nomes de classes |
| 4 | CLIENTE_VIP | ❌ | UPPER_CASE é para constantes |
| 5 | Calculadora | ✅ | Substantivo, PascalCase |
| 6 | calcular_imposto | ❌ | Verbo + snake_case (é função) |
| 7 | class | ❌ | Palavra reservada |
| 8 | PedidoService | ✅ | Serviço com sufixo Service |
| 9 | UsuarioRepository | ✅ | Repositório com sufixo Repository |
| 10 | 2Cliente | ❌ | Começou com número |
| 11 | Cliente-Importador | ❌ | Usou hífen |
| 12 | EndereçoEntrega | ❌ | Acento não permitido |
| 13 | NotaFiscalEletronica | ✅ | Válido (PascalCase, descritivo) |
| 14 | Clientes | ❌ | Deveria ser singular (Cliente) |
| 15 | __ClientePrivado | ❌ | Não usar __ (name mangling para atributos) |
| 16 | _ClienteInterno | ✅ | Permitido (privado - convenção interna) |
| 17 | LoginForm | ✅ | Formulário com sufixo Form |
| 18 | SaldoInsuficienteException | ✅ | Exceção com Exception no final |
| 19 | UsuarioABC | ✅ | Classe abstrata com ABC |
| 20 | DadosBanco | ✅ | Válido (PascalCase, descritivo) |
| Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ | Motivo do Erro |
|---|---|---|---|
| Começar com letra (a-z) ou underscore (_) | cliente.py, _utils.py | 2cliente.py, @utils.py | Nomes não podem começar com números ou caracteres especiais |
| Sem espaços | cliente_vip.py, endereco_entrega.py | cliente vip.py, endereco entrega.py | Espaços não são permitidos |
| Apenas letras, números e underscore (_) | cliente_1.py, endereco2.py | cliente-vip.py, endereço.py | Caracteres especiais e acentos são proibidos |
| Case-sensitive | cliente.py != Cliente.py | Cliente.py = cliente.py? Falso | São arquivos diferentes |
| Terminar com .py | cliente.py, usuario.py | cliente.txt, cliente.class | Extensão obrigatória .py |
| Convenção | Regra | Exemplo CORRETO ✅ | Exemplo ERRADO ❌ |
|---|---|---|---|
| snake_case | Todas minúsculas, palavras separadas por _ | cliente_vip.py, endereco_entrega.py | clienteVip.py, ClienteVip.py |
| Nome descritivo | Nome do arquivo reflete o conteúdo | cliente.py, pedido.py, produto.py | arquivo1.py, test.py, novo.py |
| Singular ou plural | Depende do conteúdo (1 classe = singular) | cliente.py (contém classe Cliente) | clientes.py (contém classe Cliente) |
| Tamanho médio | 2-4 palavras ideal | validacao_cpf.py, processamento_pagamento.py | c.py, este_arquivo_contem_a_classe_principal_do_sistema.py |
| Nome do Arquivo ✅ | Nome da Classe Interna ✅ | Relação |
|---|---|---|
| cliente.py | Cliente | Correspondência direta |
| cliente_vip.py | ClienteVip | Snake_case arquivo = PascalCase classe |
| endereco_entrega.py | EnderecoEntrega | Snake_case arquivo = PascalCase classe |
| usuario_repository.py | UsuarioRepository | Arquivo descreve a classe |
| validacao_cpf.py | ValidadorCPF | Pode conter classe principal |
| pedido_service.py | PedidoService | Serviço em arquivo próprio |
| Tipo de Classe | Padrão Nome Arquivo | Exemplo Arquivo ✅ | Classe Interna ✅ |
|---|---|---|---|
| Modelo/Entidade | nome_classe (singular) | cliente.py, produto.py, pedido.py | Cliente, Produto, Pedido |
| Serviço | nome_service.py | usuario_service.py, email_service.py | UsuarioService, EmailService |
| Repositório | nome_repository.py | usuario_repository.py, pedido_repository.py | UsuarioRepository, PedidoRepository |
| Controller | nome_controller.py | pagamento_controller.py, usuario_controller.py | PagamentoController, UsuarioController |
| Utilitário | nome_util.py | data_util.py, string_util.py | DataUtil, StringUtil |
| Configuração | config.py, settings.py | config.py, app_settings.py | Config, AppSettings |
| Exceção | nome_exception.py | saldo_insuficiente_exception.py | SaldoInsuficienteException |
| Fábrica | nome_factory.py | conexao_factory.py, usuario_factory.py | ConexaoFactory, UsuarioFactory |
| Validador | nome_validator.py | cpf_validator.py, email_validator.py | CpfValidator, EmailValidator |
| Modelo ORM | nome_model.py | usuario_model.py, produto_model.py | UsuarioModel, ProdutoModel |
| Tipo de Projeto | Padrão de Arquivos | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Pequeno (1-3 classes) | Todos no mesmo arquivo | modelos.py (contém Cliente, Produto, Pedido) | cliente.py, produto.py, pedido.py (muitos arquivos) |
| Médio (4-10 classes) | Uma classe por arquivo | cliente.py, produto.py, pedido.py, pagamento.py | tudo.py (um arquivo gigante) |
| Grande (+10 classes) | Organizado em pacotes | usuarios/cliente.py, usuarios/perfil.py | clientes_tudo.py |
| Micro serviço | arquivo principal + modelos | app.py, modelos.py | principal_tudo_junto.py |
| Estrutura | Exemplo ✅ | Exemplo ❌ |
|---|---|---|
| Pacote com módulos relacionados | usuarios/ | Usuarios/ (maiúsculo) |
| usuarios/cliente.py | usuarios/Cliente.py | |
| usuarios/perfil.py | usuarios/Perfil.py | |
| usuarios/endereco.py | usuarios/Endereco.py | |
| Pacote com submódulos | pagamentos/ | Pagamentos/ |
| pagamentos/cartao.py | pagamentos/Cartao.py | |
| pagamentos/boleto.py | pagamentos/Boleto.py | |
| pagamentos/pix.py | pagamentos/Pix.py |
| Nome Proibido | Motivo | Alternativa ✅ |
|---|---|---|
| test.py | Conflito com módulo padrão | testes_cliente.py |
| json.py | Conflito com módulo padrão | manipulador_json.py |
| email.py | Conflito com módulo padrão | email_utils.py |
| sys.py | Conflito com módulo padrão | sistema_utils.py |
| os.py | Conflito com módulo padrão | sistema_operacional.py |
| re.py | Conflito com módulo padrão | regex_utils.py |
| datetime.py | Conflito com módulo padrão | data_hora_utils.py |
| math.py | Conflito com módulo padrão | calculadora_utils.py |
| random.py | Conflito com módulo padrão | gerador_aleatorio.py |
| string.py | Conflito com módulo padrão | texto_utils.py |
| Ruim ❌ | Bom ✅ | Por quê? |
|---|---|---|
| a.py | cliente.py | Nome descritivo |
| Cliente.py | cliente.py | snake_case para arquivos |
| clienteVIP.py | cliente_vip.py | Palavras separadas por _ |
| clientes.py | cliente.py | Singular (classe Cliente) |
| arquivo_final_versao_2_final.py | cliente_final.py | Muito longo e confuso |
| temp.py | validacao_cpf.py | Nome descritivo do conteúdo |
| utils.py | data_util.py, string_util.py | Específico em vez de genérico |
| main.py | app.py, servidor.py | Nome descritivo da aplicação |
| Verificação | Regra | Status |
|---|---|---|
| 1º caractere | É letra (a-z) ou _ ? | ✅ ou ❌ |
| Todos caracteres | Só letras, números, _ ? | ✅ ou ❌ |
| Sem espaços | Não contém espaços? | ✅ ou ❌ |
| snake_case | Todas minúsculas com _ ? | ✅ ou ❌ |
| Extensão .py | Termina com .py ? | ✅ ou ❌ |
| Não é reservado | Não conflita com módulo padrão? | ✅ ou ❌ |
| Descritivo | Dá pra saber o conteúdo? | ✅ ou ❌ |
| Erro | Exemplo ERRADO | Correção ✅ |
|---|---|---|
| CamelCase | ClienteVip.py | cliente_vip.py |
| PascalCase | Cliente.py | cliente.py |
| UPPER_CASE | CLIENTE_VIP.py | cliente_vip.py |
| Espaços | cliente vip.py | cliente_vip.py |
| Acentuação | cliente_vip.py | cliente_vip.py (sem acento) |
| Hífen | cliente-vip.py | cliente_vip.py |
| Nome genérico | arquivo1.py | cliente.py |
| Nome longo | cliente_do_sistema_de_cadastro.py | cliente_cadastro.py |
| Plural para uma classe | clientes.py (com classe Cliente) | cliente.py |
| Começar com número | 2cliente.py | cliente2.py |
| Tamanho do Projeto | Número de Classes | Padrão de Arquivos | Exemplo |
|---|---|---|---|
| Micro | 1-3 | 1 arquivo | app.py (contém todas as classes) |
| Pequeno | 4-10 | 2-3 arquivos | modelos.py, servicos.py, utils.py |
| Médio | 11-30 | 1 arquivo por classe | cliente.py, produto.py, pedido.py... |
| Grande | 31+ | Pacotes organizados | usuarios/, produtos/, pedidos/, pagamentos/ |
| Framework | Padrão de Nome | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| Django | app/models.py | blog/models.py | blog/classes.py |
| Django | app/views.py | blog/views.py | blog/controladores.py |
| Django | app/admin.py | blog/admin.py | blog/administracao.py |
| Flask | app.py, models.py | app.py, models.py | principal.py, classes.py |
| FastAPI | main.py, models.py | main.py, schemas.py | app.py, classes.py |
| PyQt | nome_janela.py | janela_principal.py | JanelaPrincipal.py |
| pytest | test_nome.py | test_cliente.py | cliente_test.py |
| Sufixo | Uso | Exemplo ✅ | Exemplo ❌ |
|---|---|---|---|
| _service.py | Classes de serviço | usuario_service.py | usuario_servicos.py |
| _repository.py | Classes de repositório | pedido_repository.py | pedido_repos.py |
| _controller.py | Controladores | pagamento_controller.py | pagamento_ctrl.py |
| _model.py | Modelos ORM | produto_model.py | produto_classe.py |
| _util.py | Utilitários | data_util.py | data_utils.py (plural) |
| _exception.py | Exceções | saldo_exception.py | erros.py |
| _factory.py | Fábricas | conexao_factory.py | fabrica_conexao.py |
| _validator.py | Validadores | cpf_validator.py | validador_cpf.py |
| _config.py | Configurações | app_config.py | configuracoes.py |
| _test.py | Testes | cliente_test.py | test_cliente.py (prefira test_) |
| Tentativa | Nome do Arquivo | Classe Interna | Válido? | Regra |
|---|---|---|---|---|
| 1 | cliente.py | Cliente | ✅ | snake_case + correspondência |
| 2 | Cliente.py | Cliente | ❌ | Arquivo deve ser snake_case |
| 3 | clienteVIP.py | ClienteVip | ❌ | Deveria ser cliente_vip.py |
| 4 | cliente_vip.py | ClienteVip | ✅ | Padrão correto |
| 5 | ClienteVip.py | ClienteVip | ❌ | Arquivo deve ser snake_case |
| 6 | clientes.py | Cliente | ❌ | Plural + classe singular |
| 7 | clientes.py | Clientes | ✅ | Se classe for Clientes |
| 8 | pedido-service.py | PedidoService | ❌ | Hífen não permitido |
| 9 | pedido_service.py | PedidoService | ✅ | Correto |
| 10 | usuarioRepository.py | UsuarioRepository | ❌ | camelCase no arquivo |
| 11 | usuario_repository.py | UsuarioRepository | ✅ | Correto |
| 12 | json.py | JsonUtils | ❌ | Nome reservado (módulo padrão) |
| 13 | validador_cpf.py | ValidadorCPF | ✅ | Correto |
| 14 | 2fatores.py | DoisFatores | ❌ | Começou com número |
| 15 | init.py | (sem classe) | ✅ | Arquivo especial de pacote |
| 16 | _utils.py | _Utils (privada) | ✅ | Arquivo privado válido |
| 17 | ClienteÚnico.py | ClienteUnico | ❌ | Acento não permitido |
| 18 | test_cliente.py | (testes) | ✅ | Padrão de teste |
| 19 | app.py | App | ✅ | Nome válido para aplicação |
| 20 | main.py | Main, App | ✅ | Nome comum para entrada |
📊 RESUMO POR CATEGORIA
Categoria Funções
| Categoria | Funções |
|---|---|
| Conversão de tipo | int(), float(), str(), bool(), bytes(), bytearray(), list(), tuple(), set(), frozenset(), dict(), complex() |
| Números | abs(), divmod(), pow(), round(), sum(), min(), max(), bin(), hex(), oct() |
| Iteração | iter(), next(), enumerate(), filter(), map(), zip(), reversed(), sorted() |
| Sequências | len(), range(), slice(), all(), any() |
| Objetos | dir(), id(), type(), isinstance(), issubclass(), callable() |
| Atributos | getattr(), setattr(), hasattr(), delattr(), property(), vars() |
| Escopo | globals(), locals(), super() |
| Entrada/Saída | print(), input(), open() |
| Código dinâmico | eval(), exec(), compile(), breakpoint(), help() |
| Caracteres | chr(), ord(), ascii(), repr(), format() |
| Assíncrono | aiter(), anext() |
| Memória | memoryview() |
| Internos | build_class(), object() |
| Função | Descrição |
|---|---|
| abs() | Retorna o valor absoluto (ignora sinal negativo) |
| aiter() | Retorna um iterador assíncrono para um objeto async iterável |
| all() | Retorna True se TODOS os elementos do iterável são verdadeiros |
| anext() | Retorna o próximo item de um iterador assíncrono |
| any() | Retorna True se PELO MENOS UM elemento do iterável é verdadeiro |
| ascii() | Retorna string com caracteres não-ASCII escapados |
| bin() | Converte um inteiro em uma string binária com prefixo '0b' |
| bool() | Converte um valor para booleano (True ou False) |
| breakpoint() | Abre o depurador (debugger) no ponto onde é chamado |
| bytearray() | Cria um array mutável de bytes (valores 0-255) |
| bytes() | Cria um objeto imutável de bytes |
| callable() | Verifica se um objeto pode ser chamado como uma função |
| chr() | Converte um código Unicode (inteiro) para o caractere correspondente |
| classmethod() | Converte um método em método de classe |
| compile() | Compila código fonte em um objeto de código executável |
| complex() | Cria um número complexo (parte real + imaginária) |
| delattr() | Deleta um atributo de um objeto |
| dict() | Cria um dicionário (estrutura chave-valor) |
| dir() | Retorna a lista de nomes no escopo atual ou atributos de um objeto |
| divmod() | Retorna uma tupla (quociente, resto) da divisão de dois números |
| enumerate() | Retorna pares de (índice, valor) de um iterável |
| eval() | Executa uma string como código Python e retorna o resultado |
| exec() | Executa código Python (não retorna valor) |
| filter() | Constrói um iterador com os elementos que atendem a uma condição |
| float() | Converte um número ou string para ponto flutuante |
| format() | Formata um valor usando especificações de formato |
| frozenset() | Cria um conjunto imutável (não pode ser modificado) |
| getattr() | Retorna o valor de um atributo de um objeto |
| globals() | Retorna um dicionário do escopo global atual |
| hasattr() | Verifica se um objeto possui um determinado atributo |
| hash() | Retorna o valor hash de um objeto (se for hashable) |
| help() | Abre o sistema de ajuda interativo ou exibe documentação |
| hex() | Converte um inteiro em uma string hexadecimal com prefixo '0x' |
| id() | Retorna a identidade única (endereço de memória) de um objeto |
| input() | Lê uma linha digitada pelo usuário no console |
| int() | Converte um número ou string para inteiro |
| isinstance() | Verifica se um objeto é instância de uma classe ou tipo |
| issubclass() | Verifica se uma classe é subclasse de outra |
| iter() | Retorna um iterador a partir de um objeto iterável |
| len() | Retorna o número de itens (tamanho) de um objeto |
| list() | Cria uma lista a partir de um iterável |
| locals() | Retorna um dicionário do escopo local atual |
| map() | Aplica uma função a cada elemento de um iterável |
| max() | Retorna o maior valor de um iterável ou entre argumentos |
| memoryview() | Cria uma visualização (view) sobre memória de bytes sem copiar |
| min() | Retorna o menor valor de um iterável ou entre argumentos |
| next() | Retorna o próximo item de um iterador |
| object() | Retorna um novo objeto simples sem características |
| oct() | Converte um inteiro em uma string octal com prefixo '0o' |
| open() | Abre um arquivo e retorna um objeto de arquivo |
| ord() | Retorna o código Unicode (inteiro) de um caractere |
| pow() | Retorna a potência de um número (x elevado a y) |
| print() | Imprime valores no console (saída padrão) |
| property() | Cria uma propriedade para gerenciar atributos de uma classe |
| range() | Gera uma sequência imutável de números (economiza memória) |
| repr() | Retorna a representação oficial (para debug) de um objeto |
| reversed() | Retorna um iterador que percorre a sequência em ordem reversa |
| round() | Arredonda um número para uma determinada precisão |
| set() | Cria um conjunto (coleção de elementos únicos sem ordem) |
| setattr() | Define o valor de um atributo de um objeto |
| slice() | Cria um objeto slice (fatia) para fatiar sequências |
| sorted() | Retorna uma nova lista ordenada a partir de um iterável |
| staticmethod() | Converte um método em método estático |
| str() | Converte um objeto para string |
| sum() | Soma todos os elementos de um iterável |
| super() | Retorna um objeto proxy que delega chamadas para a classe pai |
| tuple() | Cria uma tupla (sequência imutável) a partir de um iterável |
| type() | Retorna o tipo de um objeto ou cria uma nova classe dinamicamente |
| vars() | Retorna o dicionário dict de um objeto (atributos) |
| zip() | Agrupa elementos de múltiplos iteráveis em tuplas |
| build_class() | Função interna usada pelo Python para criar classes (não chamar diretamente) |