Ensimmäisen luokan toiminnot Pythonissa

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.
Suositeltu tietokilpailu Muokkaa tietokilpailua 8 kysymystä

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.

Selitys:


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ä.

Selitys:


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

Selitys:

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ä

Selitys:

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

Selitys:

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.

Selitys:


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

Selitys:

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ää

Selitys:

Ensimmäisen luokan kansalaisina oleminen tarkoittaa, että funktioita voidaan määrittää hyväksytyiksi ja palauttaa muiden objektien tapaan.

Ensimmäisen luokan toiminnot PythonissaTietokilpailu suoritettu onnistuneesti pisteesi:   2 /8 Tarkkuus:  0 % Kirjaudu sisään nähdäksesi selityksen 1 /8 1 /8 < Previous Seuraava >