Hvordan bruke «Pass»-erklæringen i Python

Når du skriver et program, skriver du sjelden all koden på en gang og kjører bare koden din på slutten. I stedet er det mest sannsynlig at du skriver litt kode, kjører programmet, skriver litt mer og gjentar til du er ferdig.

Effektivt vil du dele og erobre programmet ditt ved å fokusere på noen viktige deler og utelate andre, og deretter gå tilbake for å fylle ut de tomme feltene. For å gjøre dette effektivt i Python, må du bruke bestått-erklæringen, denne artikkelens emne.

Hva er «bestått»-erklæringen?

I motsetning til de fleste nøkkelord som forteller tolken å gjøre noe, er beståtterklæringen unik fordi den forteller tolken å ikke gjøre noe. Den brukes inne i blokker.

Blokker i Python er kodelinjer rykket inn under funksjoner, klasser eller kontrollflytsetninger. Kontrollflytsetninger er setninger som endrer den vanlige topp-til-bunn-kjøringen av et program ved enten å hoppe over kode ved å bruke betingelser eller gjenta kjøringen av kode ved hjelp av loops. De vanlige nøkkelordene for kontrollflyt i Python er hvis, for og mens.

Behovserklæring

Jeg forklarte tidligere at passerklæringen er en erklæring som ikke gjør noe. Men hvorfor skulle vi trenge en uttalelse som ikke gjør noe når vi bygger et program som gjør noe? I denne delen vil jeg forklare brukstilfellene for beståtterklæringen.

#1. Plassholder for fremtidig implementering

Som nevnt i innledningen, når du koder, er det nyttig å dele og erobre når du skriver programmet. Når du for eksempel skriver en funksjon, vil du kanskje lage en funksjonsoverskrift og komme tilbake for å skrive funksjonsteksten senere.

  Roblox Dragon Adventures-kampanjekoder: Løs inn nå

Men Python-tolken vil kjefte på deg hvis du prøver å kjøre koden. Dette er fordi Python forventer at kroppen til en funksjon, eller en hvilken som helst kodeblokk, skal inneholde minst én setning. Her er en eksempelfunksjon jeg har i en Python-fil:

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

Nå hvis jeg prøver å kjøre koden, vil jeg få en syntaksfeil som sier noe sånt som dette:

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

Del-og-hersk-strategien vår vil ikke fungere hvis vi skriver alt på forhånd, men Python trenger at vi skriver minst noe. Passerklæringen hjelper i den forbindelse. Det er teknisk sett en uttalelse, så hvis du inkluderte den i en blokk, ville ikke Python kjeftet på deg. Og likevel gjør det ingenting, så du trenger ikke å bekymre deg for funksjonslogikken. Her er den forrige funksjonen med passerklæringen.

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

Nå hvis vi kjører koden, får vi ingen feil.

Du kan også ringe funksjonen for å bekrefte at den ikke gjør noe.

I hovedsak er dette hovedbrukssaken til pass-setningen i Python – som en plassholder for tomme kodeblokker. Det trenger ikke bare være funksjoner, men fungerer med betingelser, looper og klasser.

#2. Implementering av abstrakte klasser og grensesnitt

Beståtterklæringen kan også brukes til å implementere en abstrakt klasse. En abstrakt klasse er en klasse som implementerer abstrakte metoder, og en abstrakt metode er en metode som er definert, men ikke implementert. Dette ligner på brukstilfellet definert ovenfor, der vi brukte bestått-erklæringen som en plassholder. Men i motsetning til det forrige tilfellet hvor beståtterklæringen bare var midlertidig, er den i dette tilfellet permanent.

Abstrakte klasser er basisklasser som definerer metodene superklassene som arver fra dem skal implementere. Abstrakte klasser implementerer ikke noe av logikken; de definerer metodene som utgjør klassene som er arvet fra dem. Som et resultat instansierer du ikke en basisklasse direkte.

  10 online undersøkelsesapper for å tjene penger

Du bruker @abstractmethod-dekoratoren og ABC-klassen definert i abc-pakken for å lage abstrakte klasser i Python. Hvis du er ukjent med eller glemte dekoratører, her er en artikkel om dekoratører i Python.

Som jeg sa, abc-pakken definerer @abstractmethod-dekoratoren og ABC-klassen, som vi vil bruke som følger:

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 arver fra ABC-klassen. I tillegg har vi @abstracmethod-dekoratøren definert rundt basic_method. Nå kan du arve fra denne klassen og implementere basic_method.

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

Du kan deretter instansiere denne klassen og prøvekjøre basic_method.

my_object = DerivedClass()

my_object.basic_method()

Når du kjører dette, skal du kunne få meldingen skrevet på skjermen.

Hello from the defined basic method

#3. Å gjøre ingenting med fanget unntak

Når programmet støter på en feil i Python, reiser det et unntak. Unntak er forstyrrende ettersom de får programmet til å krasje og stoppe kjøringen. Du kan imidlertid fange opp og håndtere unntak for å forhindre at programmet krasjer. Du kan bruke passerklæringen hvis du ikke ønsker å gjøre noe spesielt for å håndtere feilen. Her er et eksempel:

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

Hvis du kjører koden ovenfor, skjer ingenting. Dette er fordi unntaket heves og håndteres av koden i unntaksblokken. Men denne koden gjør ingenting, så ingenting skjer. Normalt, med unntak, ønsker du å logge dem eller håndtere dem på en elegant måte. Men hvis du ikke vil gjøre noe, er det slik du ville gjort det.

  Fiks 0x87de2712 Xbox One-feil

Hvordan skiller passerklæringen seg fra pause og fortsett?

Andre søkeord du kan støte på er pause og fortsett. Kort fortalt vil jeg forklare hva de gjør, slik at du kan se hvordan de skiller seg fra beståtterklæringen.

Pauseerklæring

Pausesetningen brukes til å bryte ut av en loop. Annenhver påfølgende iterasjon av sløyfen blir deretter kansellert. Anta for eksempel at du skrev en lineær søkefunksjon. Når elementet er funnet, er det ingen grunn til å fortsette å iterere til slutten av listen. Det ville være fornuftig å bryte ut av loopen. Så du vil bruke pauseerklæringen. Her er et eksempel på en lineær søkefunksjon:

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

Fortsett uttalelse

Fortsett-setningen brukes til å hoppe over gjeldende iterasjon i loopen. Hvis du itererer over en liste med tall, vil programmet stoppe den gjeldende iterasjonen og hoppe over til neste iterasjon når programmet ditt møter en fortsettelse. Løkken fortsetter å løpe. Følgende er en eksempelfunksjon som bruker fortsettelse-setningen. Programmet dobler alle oddetall, så en liste inneholder kun partall.

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

Forhåpentligvis, ved å forstå pause- og fortsette-utsagn, klarte du å skille dem fra bestått-erklæringen.

Beste fremgangsmåter for bruk av godkjenningserklæringen

✅ Husk at passerklæringen vanligvis brukes som en midlertidig plassholder; husk å erstatte passerklæringen med den faktiske koden når den er klar.

✅ Hvis du bruker passerklæringen til noe annet enn som en midlertidig plassholder, ta med en kommentar som forklarer hvorfor den er der.

Siste ord

I denne artikkelen forklarte jeg passerklæringen i Python, et nyttig nøkkelord som lar deg dele og erobre når du skriver kode. Passerklæringen er også dekket i Pythons dokumentasjon.

Deretter kan du sjekke ut de vanlige Python-feiltypene og hvordan du løser dem.