Ensimmäisen luokan toiminnot Pythonissa
Pythonissa toimintoja käsitellään ensiluokkaisina objekteina. Tämä tarkoittaa, että niitä voidaan käyttää aivan kuten numerojonoja tai mitä tahansa muuta muuttujaa. Voit:
- Määritä funktioita muuttujille.
- Välitä ne argumenteiksi muille funktioille.
- Palauta ne funktioista.
- Tallenna ne tietorakenteisiin, kuten luetteloihin tai sanakirjoihin.
Tämän ominaisuuden avulla voit kirjoittaa uudelleen käytettävää modulaarista ja tehokasta koodia.
Ensiluokkaisten toimintojen ominaisuudet
Pythonin funktioilla on seuraavat tärkeät ominaisuudet. Katsotaanpa niitä yksitellen esimerkkien kanssa:
1. Toimintojen määrittäminen muuttujille
Voimme määrittää muuttujalle funktion ja käytä muuttujaa funktion kutsumiseen.
Esimerkki:
Python def msg ( name ): return f 'Hello { name } !' # Assigning the function to a variable f = msg # Calling the function using the variable print ( f ( 'Emma' ))
Lähtö
Hello Emma!
Selitys:
- Funktio msg on määritetty muuttujalle f.
- Nyt f:llä voidaan kutsua viestiä, joka osoittaa, että funktiot toimivat muuttujien tavoin.
2. Funktioiden välittäminen argumentteina
Toiminnot voivat olla hyväksyttiin argumentteina muihin toimintoihin, jotka mahdollistavat korkeamman asteen toiminnot .
Esimerkki:
Python def msg ( name ): return f 'Hello { name } !' def fun1 ( fun2 name ): return fun2 ( name ) # Passing the msg function as an argument print ( fun1 ( msg 'Alex' ))
Lähtö
Hello Alex!
Selitys:
- Funktio fun1 ottaa toisen funktion (fun2) syötteenä.
- msg välitetään fun1:lle, joka sitten kutsuu sitä nimellä "Alex".
3. Toimintojen palauttaminen muista funktioista
Toiminto voi palauttaa toisen funktion mahdollistaa toimintotehtaiden perustamisen.
Esimerkki:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Lähtö
Message: Hello World!
Selitys:
- Funktio fun1 määrittelee toisen funktion fun2 ja palauttaa sen.
- func tallentaa palautetun funktion fun2, joka voidaan suorittaa myöhemmin.
Toimintoja voidaan tallentaa tietorakenteisiin, kuten luetteloita tai sanakirjoja .
Esimerkki:
Python def add ( x y ): return x + y def subtract ( x y ): return x - y # Storing functions in a dictionary d = { 'add' : add 'subtract' : subtract } # Calling functions from the dictionary print ( d [ 'add' ]( 5 3 )) print ( d [ 'subtract' ]( 5 3 ))
Lähtö
8 2
Selitys:
- Summa- ja vähennysfunktiot tallennetaan sanakirjaan.
- Niihin päästään heidän avaimillaan ja ne suoritetaan suoraan.
Mikä seuraavista kuvaa parhaiten ohjelmointikielten ensiluokkaista funktiota?
- A
Funktio, jota voidaan kutsua vain sen omasta laajuudesta.
- B
Funktio, joka voidaan määrittää muuttujille, jotka välitetään argumentteina ja palautetaan muista funktioista, kuten mistä tahansa muusta objektista.
- C
Toiminto, joka voidaan määrittää vain moduulin ylimmällä tasolla.
- D
Toiminto, joka voidaan suorittaa vain tietyssä kontekstissa.
Mikä on korkeamman asteen funktio ensimmäisen luokan funktioiden yhteydessä?
- A
Funktio, joka voi palauttaa vain primitiivisiä tietotyyppejä.
- B
Funktio, joka voi ottaa muita toimintoja argumentteina tai palauttaa ne tuloksina.
- C
Funktio, joka on määritelty toisessa funktiossa, mutta jota ei voida palauttaa.
- D
Toiminto, joka suoritetaan erillisessä säikeessä.
Mikä on seuraavan koodin tulos?
def tervehdys(nimi):
palauta f'Hei {name}'
sano_hei = tervehtiä
print(say_hello('Geek'))
- A
moi tervehdys
- B
tervehtiä
- C
Hei Geek
- D
TypeError
Toimintoja voidaan määrittää muuttujille. Tässä say_hellosta tulee toinen viittaus tervehtimiseen.
Mikä seuraavista ei ole ensiluokkaisten funktioiden ominaisuus?
- A
Funktiot voidaan tallentaa tietorakenteisiin
- B
Toimintoja voidaan määrittää muuttujille
- C
Funktiot voivat palauttaa muita toimintoja
- D
Funktiot voivat palauttaa vain primitiivityyppejä
Ensiluokkaiset funktiot voivat palauttaa minkä tahansa tyypin, mukaan lukien muut funktiot – ei rajoitu primitiivisiin.
Mikä on tämän koodin tulos?
def outer ():
def inner():
palauta "sisätoiminto"
paluu sisälle
func = ulompi ()
tulosta (toiminto())
- A
Sisäinen toiminto
- B
sisäinen
- C
ulompi
- D
Virhe
outer() palauttaa sisäisen funktion ja func() kutsuu sitä palauttamalla sen merkkijonon.
Mikä seuraavista EI ole ominaisuus ensiluokkaisille funktioille?
- A
Ne voidaan liittää muuttujiin.
- B
Ne voidaan välittää argumentteina muille funktioille.
- C
Ne voidaan määrittää vain kerran ohjelmassa.
- D
Ne voidaan palauttaa muista toiminnoista.
Mikä on seuraavan koodin tulos?
def make_multiplier(n):
def kerroin(x):
paluu x * n
tuottokerroin
double = make_multiplier(2)
tulostaa (kaksois(5))
- A
7
- B
10
- C
25
- D
Virhe
make_multiplier(2) palauttaa funktion, joka kertoo argumenttinsa kahdella. Double(5) palauttaa siis arvon 10.
Miten Python käsittelee funktioita muuttujien suhteen?
- A
Funktiot ovat staattisia objekteja
- B
Funktiot ovat vakioita, eikä niitä voi määrittää uudelleen
- C
Toiminnot ovat ensiluokkaisia, ja ne voidaan tallentaa hyväksyttyinä ja uudelleenosoitettavina
- D
Funktiot on ilmoitettava globaaleiksi, jotta niitä voidaan käyttää
Ensimmäisen luokan kansalaisina oleminen tarkoittaa, että funktioita voidaan määrittää hyväksytyiksi ja palauttaa muiden objektien tapaan.
Tietokilpailu suoritettu onnistuneesti pisteesi: 2 /8 Tarkkuus: 0 % Kirjaudu sisään nähdäksesi selityksen 1 /8 1 /8 < Previous Seuraava >