Como usar a instrução ‘Pass’ em Python

Ao escrever um programa, você raramente escreve todo o código de uma só vez e apenas o executa no final. Em vez disso, é mais provável que você escreva algum código, execute o programa, escreva mais um pouco e repita até terminar.

Efetivamente, você dividirá e conquistará seu programa concentrando-se em algumas partes essenciais e omitindo outras, retornando para preencher os espaços em branco. Para fazer isso efetivamente em Python, você deve usar a instrução pass, o assunto deste artigo.

O que é a declaração ‘Pass’?

Ao contrário da maioria das palavras-chave que dizem ao interpretador para fazer algo, a instrução pass é única porque diz ao interpretador para não fazer nada. É usado dentro de blocos.

Blocos em Python são linhas de código recuadas em funções, classes ou instruções de fluxo de controle. As instruções de fluxo de controle são instruções que alteram a execução normal de cima para baixo de um programa, ignorando o código usando condicionais ou repetindo a execução do código usando loops. As palavras-chave de fluxo de controle comuns em Python são if, for e while.

Necessidade de Declaração ‘Pass’

Expliquei anteriormente que a instrução pass é uma instrução que não faz nada. Mas por que precisaríamos de uma declaração que não faz nada ao construir um programa que faz alguma coisa? Nesta seção, explicarei os casos de uso da instrução pass.

#1. Espaço reservado para implementação futura

Conforme mencionado na introdução, ao codificar, é útil dividir e conquistar ao escrever seu programa. Por exemplo, ao escrever uma função, você pode querer criar um cabeçalho de função e voltar a escrever o corpo da função mais tarde.

  Corrigir Elder Scrolls Online Preso na Tela de Carregamento

Mas o interpretador Python gritará com você se tentar executar o código. Isso ocorre porque o Python espera que o corpo de uma função, ou qualquer bloco de código, contenha pelo menos uma instrução. Aqui está uma função de exemplo que tenho em um arquivo Python:

def my_function():
    # Will write the code later
    # For now there are no statements

Agora, se eu tentar executar o código, obterei um erro de sintaxe que diz algo como isto:

File "<ipython-input-1-58189b01193e>", line 3
    # For now there are no statements
                                     ^
SyntaxError: incomplete input

Nossa estratégia de dividir e conquistar não funcionará se escrevermos tudo de antemão, mas o Python precisa que escrevamos pelo menos alguma coisa. A declaração pass ajuda nesse sentido. É tecnicamente uma instrução, portanto, se você a incluísse em um bloco, o Python não gritaria com você. E ainda não faz nada, então você não precisa se preocupar com a lógica da função. Aqui está a função anterior com a instrução pass.

def my_function():
    # Will write the code later
    # For now we only have the pass statement
    pass

Agora, se executarmos o código, não obteremos erros.

Você também pode chamar a função para confirmar que ela não faz nada.

Essencialmente, este é o principal caso de uso da instrução pass em Python – como um espaço reservado para blocos de código vazios. Não precisa ser apenas funções, mas funciona com condicionais, loops e classes.

#2. Implementando classes abstratas e interfaces

A instrução pass também pode ser usada para implementar uma classe abstrata. Uma classe abstrata é uma classe que implementa métodos abstratos, e um método abstrato é um método definido, mas não implementado. Isso é semelhante ao caso de uso definido acima, em que usamos a instrução pass como espaço reservado. No entanto, ao contrário do caso anterior em que a instrução pass era apenas temporária, neste caso ela é permanente.

Classes abstratas são classes base que definem os métodos que as superclasses herdadas delas devem implementar. Classes abstratas não implementam nenhuma lógica; eles definem os métodos que compõem as classes herdadas deles. Como resultado, você não instancia uma classe base diretamente.

  Você pode cancelar o envio de um snap? De um jeito

Você usa o decorador @abstractmethod e a classe ABC definida no pacote abc para criar classes abstratas em Python. Se você não está familiarizado ou se esqueceu dos decoradores, aqui está um artigo sobre decoradores em Python.

Como eu estava dizendo, o pacote abc define o decorator @abstractmethod e a classe ABC, que usaremos da seguinte forma:

from abc import (abstractmethod, ABC)

class BasicClass(ABC):

    @abstractmethod
    def basic_method(self):
        # Basic method is a method that any superclass of BasicClass should implement
        # So we simply define it here and not implement it
        # So in the body we use the pass statement so its valid code
        pass

BasicClass herda da classe ABC. Além disso, temos o decorador @abstracmethod definido em torno de basic_method. Agora, você pode herdar desta classe e implementar basic_method.

class DerivedClass(BasicClass):
    def basic_method(self):
        print("Hello from the defined basic method")

Você pode então instanciar esta classe e testar o basic_method.

my_object = DerivedClass()

my_object.basic_method()

Ao executar isso, você poderá obter a mensagem escrita na tela.

Hello from the defined basic method

#3. Para não fazer nada com exceções capturadas

Quando o programa encontra um erro no Python, ele gera uma exceção. As exceções são perturbadoras, pois fazem com que o programa trave e interrompa a execução. No entanto, você pode capturar e manipular exceções para evitar que o programa falhe. Você pode usar a instrução pass se não quiser fazer nada em particular para lidar com o erro. Aqui está um exemplo:

try:
    # code that will definitely raise an exception
    raise Exception('Some exception')
except:
    pass

Se você executar o código acima, nada acontecerá. Isso ocorre porque a exceção é levantada e tratada pelo código no bloco except. Mas este código não faz nada, então nada acontece. Normalmente, com exceções, você deseja registrá-los ou manipulá-los normalmente. Mas se você não quer fazer nada, é assim que você faria.

  Como cancelar uma reunião no Microsoft Teams

Como a instrução Pass difere de Break e Continue?

Outras palavras-chave que você pode encontrar são break e continue. Resumindo, explicarei o que eles fazem para que você possa ver como eles diferem da declaração de passagem.

Declaração de quebra

A instrução break é usada para sair de um loop. Todas as outras iterações subsequentes do loop são canceladas. Por exemplo, suponha que você esteja escrevendo uma função de pesquisa linear. Quando o elemento é encontrado, não há razão para continuar iterando até o final da lista. Faria sentido sair do circuito. Então você usaria a instrução break. Aqui está um exemplo de função de pesquisa linear:

def linear_search(values, search_value):
    for i in range(len(values)):
        if values[i] == search_value
            print("Value found at index", i)
            break

Continuar declaração

A instrução continue é usada para pular a iteração atual no loop. Se você estiver iterando em uma lista de números, quando seu programa encontrar uma instrução continue, ele interromperá a iteração atual e pulará para a próxima iteração. O loop continua em execução. Veja a seguir um exemplo de função que usa a instrução continue. O programa duplica todos os números ímpares, portanto, uma lista contém apenas números pares.

def make_even(nums):
    for i in range(len(nums)):
        if nums[i] % 2 == 0:
            # If the num is already even we jump to the next iteration using continue
            continue
        
        # Only odd numbers will get to this point
        # We double the number so it becomes even
        nums[i] *= 2

Esperançosamente, ao entender as instruções break e continue, você conseguiu diferenciá-las da instrução pass.

Práticas recomendadas para usar a instrução Pass

✅ Lembre-se de que a declaração de aprovação é normalmente usada como um substituto temporário; lembre-se de substituir a instrução pass pelo código real quando estiver pronto.

✅ Se você usar a declaração de aprovação para algo que não seja um espaço reservado temporário, inclua um comentário explicando por que ela está lá.

Palavras Finais

Neste artigo, expliquei a instrução pass em Python, uma palavra-chave útil que permite dividir e conquistar ao escrever código. A instrução pass também é abordada na documentação do Python.

Em seguida, confira os tipos de erro comuns do Python e como resolvê-los.