Python: opsezi, zatvaranja i dekoratori

Razjasnite kako Python pronalazi imena i održava stanje tijekom poziva s ovim fokusiranim kvizom o opsezima, zatvaranjima i dekoratorima. Radit ćete kroz stvarne obrasce poput ugniježdenih funkcija, k...

Sva pitanja provjerena su radi točnosti
128 pitanja
4,853 igranja

Pokreni kviz

Odaberite težinu i broj pitanja za početak.

Odaberite težinu
Odaberite broj pitanja
Automatski prijelaz nakon

O ovom kvizu

Što ćete vježbati

Opsezi, zatvaranja i dekoratori su gdje se Pythonova „samo radi” može iznenada činiti suptilnim. Ovaj kviz pomaže vam izgraditi pouzdan mentalni model za rješavanje imena (LEGB), uhvaćene varijable i obrasce omotavanja funkcija.

Svako pitanje koristi 4 opcije i nema tajmera, tako da možete pažljivo razmišljati o redoslijedu izvršavanja, vezama i onome što se zapravo evaluira.

Težina i postavke kviza

Odaberite koliko pitanja želite odgovoriti prije nego što počnete, i odaberite lakšu ili težu težinu ako želite usredotočiti svoju praksu. Ukupna težina je uravnotežena miješanjem brzih provjera koncepata s pitanjima o čitanju koda koja zahtijevaju korak-po-korak praćenje.

Uobičajeni pristup je započeti s kraćim trajanjem na mješovitoj težini, a zatim ponoviti s višom težinom kada možete predvidjeti izlaze bez nagađanja.

Uobičajene zamke na koje treba paziti

  • Zbunjujuće dodjeljivanje s pretraživanjem: svako dodjeljivanje u funkciji može učiniti ime lokalnim osim ako nije deklarirano globalnim/nonlocal
  • Kasno vezivanje u zatvaranjima (npr. lambde u petljama koje hvataju istu varijablu)
  • Zaboravljanje vraćanja unutarnje funkcije prilikom izgradnje zatvaranja
  • Pisanje dekoratora koji gube metapodatke funkcije (nedostaje functools.wraps)
  • Pogrešno razumijevanje vremena izvršavanja dekoratora: dekoracija se događa pri uvozu/definiciji, a ne pri pozivu

Savjeti za bolje rezultate

Kada propustite pitanje, prepišite isječak u svom umu koristeći eksplicitne korake: ponašanje u vrijeme definicije naspram ponašanju u vrijeme poziva, koji opseg posjeduje svako ime, i koji objekt dekorator vraća. Bez tajmera i s 4 opcije po pitanju, tretirajte svaki predmet kao mini-debugging sesiju umjesto testa brzine.

Primjeri pitanja

Koji je termin za područje programa gdje je varijabla dostupna?

  • A.Opseg
  • B.Kontekst
  • C.Blok
  • D.Regija

Koja ključna riječ se koristi za deklariranje globalne varijable u Pythonu?

  • A.global
  • B.public
  • C.private
  • D.local

Koja vrsta funkcije vam omogućuje da pridružite ponašanje postojećoj funkciji?

  • A.Dekorator
  • B.Zatvaranje
  • C.Generator
  • D.Povratni poziv

Česta pitanja o kvizu

Koliko pitanja ima ovaj kviz?

Ovaj kviz ima 128 pitanja o Python opsezima, zatvaranjima i dekoratorima.

Je li ovaj kviz vremenski ograničen?

Ne. Nema tajmera, tako da možete uzeti svoje vrijeme za čitanje koda i razmišljanje o opsegu i vezama.

Koji format odgovora koristi kviz?

Svako pitanje je višestrukog izbora s 4 opcije.

Mogu li odabrati broj pitanja i težinu?

Da. Prije početka, odaberite broj pitanja i odaberite razinu težine; Mješovito miješa lake, srednje i teže stavke.

Koje su teme pokrivene osim osnovnih pravila opsega?

Vidjet ćete LEGB pretraživanje, globalno/nonlocal, hvatanje zatvaranja, kasno vezivanje, obrasce dekoratora i uobičajene pogreške omotanja.

Povezani kvizovi

Rust: vlasništvo, posudba i trajanje

Rust: vlasništvo, posudba i trajanje

Oštrite svoje razumijevanje Rustovog modela vlasništva, pravila posudbe i oznaka trajanja kroz praktična pitanja usmjerena na kod. Rješavat ćete uobičajene greške prevoditelja, birati najsigurnije ispravke i razvijati intuiciju o tome kako posudbeni provjeravač razmišlja. Odaberite svoju omiljenu težinu i broj pitanja, a zatim učite vlastitim tempom bez vremenskog ograničenja.

3,499
Igraj odmah
JavaScript: obećanja, async i event loop

JavaScript: obećanja, async i event loop

Razjasnite asinkrono ponašanje JavaScripta kroz pitanja o obećanjima, async/await, mikro zadacima i event loopu. Vježbat ćete predviđanje reda izvršavanja, prepoznavanje suptilnih grešaka u vremenu i odabir pravog asinkronog obrasca za stvarni kod. Odaberite željeni broj pitanja i težinu, a zatim učite vlastitim tempom bez vremenskog ograničenja.

1,873
Igraj odmah
Objašnjeni modeli usluga računalstva u oblaku

Objašnjeni modeli usluga računalstva u oblaku

Provjerite svoje razumijevanje kako se usluge u oblaku isporučuju i koriste. Pokriva IaaS, PaaS, SaaS, kontejnere naspram VM-ova, regije/zone dostupnosti i osnove zajedničke odgovornosti.

2,841
Igraj odmah
Komponente i uloge računalnog hardvera

Komponente i uloge računalnog hardvera

Uparite ključne komponente računala s onim što rade i kako utječu na performanse. Obuhvaća CPU, GPU, RAM, vrste pohrane, matične ploče, napajanja i priključke.

3,362
Igraj odmah
Osnove sintakse programskih jezika

Osnove sintakse programskih jezika

Testirajte svoje znanje o uobičajenoj sintaksi programiranja kroz popularne jezike. Pitanja se fokusiraju na varijable, petlje, funkcije i osnovne strukture podataka bez potrebe za dubokom teorijom računalnih znanosti.

4,654
Igraj odmah
Cybersecurity prijetnje i obrane

Cybersecurity prijetnje i obrane

Identificirajte uobičajene cyber prijetnje i najbolje obrambene prakse koje se koriste za smanjenje rizika. Obuhvaća phishing, malware, lozinke, MFA, osnove enkripcije i sigurne navike pregledavanja.

4,046
Igraj odmah