Ytre Funksjon og virkeområdet i Python

Programmeringsspråket Python, som mange programmeringsspråk, bruker funksjoner for å konseptualisere en modulær koding paradigme. Dette betyr at programmerere kan skrive funksjoner som utfører diskrete oppgaver, eliminerer overlapping av funksjonalitet og gjør vedlikehold enklere. Men ved hjelp av funksjoner i forbindelse med hverandre kan innføre problemer for uforsiktige programmerere, for eksempel problemer knyttet til variabel omfang og tilgang til data.

funksjoner

Funksjoner er bare diskrete blokker av kode som utfører en bestemt oppgave. Funksjonene er definert med et navn som programmerer kan utføre dem, og Inneholder en liste over argumenter som representerer variabler funksjonen vil motta som input fra brukeren. For eksempel, følgende funksjon, kalt "dobbel", tar et enkelt argument (x) og returnerer som nummer multiplisert med to:

def doble (x):
. . . returnere x * 2

Scope

Som funksjoner er diskrete blokker av kode, blir alle data som er tilgjengelige for funksjonen definert som funksjon er "omfang." Omfang, i dette tilfelle er begrenset til de data og andre funksjoner som er definert i funksjonen, og alle data som er definert i et surroundkodeblokk. For eksempel, følgende funksjon "double" nå inneholder en ekstra variabel inne. Denne variabelen kan bare refereres til innsiden av funksjon. Prøver å bruke den utenfor funksjonen vil skape en feil:

def doble (x):
. . . y = 0
. . . print y
. . . returnere x * 2
dobbel (2)
0
4
print y
Traceback feil ...

ytre Scope

Funksjoner kan få tilgang til variabler deklarert utenfor sitt virkeområde, men. Hvis en funksjon er erklært i et program, eller en annen funksjon, som første funksjonen kan få tilgang til variabler i det omfang, kalt "ytre omfang." For eksempel, erklærer følgende program en variabel, og deretter erklærer en funksjon som skriver ut variabelen. Siden variabelen er i den ytre rammen av funksjon, kan funksjonen bruke variabelen:

x = 4
def funk ():
. . . print x
funk ()
4

Gi nytt navn til variabler

Funksjoner kan bruke variabler i sitt ytre omfang. Imidlertid, siden den ytre omfanget av funksjon og den indre omfang av funksjonen er to separate ting, variabler utvendig og innvendig en funksjon kan ha samme navn. Følgende eksempel illustrerer dette: programmerer erklærer en variabel, "x" utenfor og inne i funksjon, og gir hver versjon en annen verdi. Skrive variabelen utenfor funksjonen vil returnere en annen verdi enn å utføre funksjonen:

x = 2
def p ():
. . . x = 1
. . . print x
print x
2
p ()
1