Python: rozsahy, uzávierky a dekorátory

Rozpleťte, ako Python nachádza názvy a udržuje stav naprieč volaniami s týmto zameraným kvízom na rozsahy, uzávierky a dekorátory. Prejdete si reálne vzory ako vnorené funkcie, použitie nonlocal/globa...

Všetky otázky sú overené z hľadiska správnosti
128 otázok
4,936 hier

Spustiť Kvíz

Vyberte si obtiažnosť a počet otázok pre začiatok.

Vyberte obtiažnosť
Vyberte počet otázok
Prepnúť po

O tomto kvíze

Na čom budete cvičiť

Rozsahy, uzávierky a dekorátory sú miestami, kde sa môže zdanie "to jednoducho funguje" v Pythone náhle zdať jemné. Tento kvíz vám pomôže vybudovať spoľahlivý mentálny model pre riešenie názvov (LEGB), zachytené premenné a vzory obalovania funkcií.

Každá otázka používa 4 možnosti a nie je tu časovač, takže môžete starostlivo uvažovať o poradí vykonávania, väzbách a o tom, čo sa skutočne vyhodnocuje.

Obtiažnosť a nastavenie kvízu

Vyberte si, koľko otázok chcete zodpovedať pred začatím, a vyberte si ľahšiu alebo ťažšiu obtiažnosť, ak sa chcete zamerať na svoje cvičenie. Celková obtiažnosť je vyvážená kombinovaním rýchlych kontrol konceptov s položkami čítania kódu, ktoré si vyžadujú krok za krokom sledovanie.

Bežný prístup je začať s kratším behom na zmiešanej obtiažnosti, potom opakovať s vyššou obtiažnosťou, keď dokážete predpovedať výstupy bez hádania.

Bežné pasce, na ktoré si dajte pozor

  • Zmätok medzi priradením a vyhľadávaním: akékoľvek priradenie vo funkcii môže urobiť názov lokálnym, pokiaľ nie je deklarovaný ako globálny/nonlocal
  • Neskoré viazanie v uzávierkach (napr. lambdy v cykloch zachytávajúce tú istú premennú)
  • Zabudnutie vrátiť vnútornú funkciu pri budovaní uzávierok
  • Písanie dekorátorov, ktoré strácajú metadáta funkcie (chýbajúce functools.wraps)
  • Nezrozumenie času vykonávania dekorátora: dekorácia sa deje pri importe/definícii, nie pri čase volania

Tipy na lepšie skóre

Keď zmeškáte otázku, prepíšte úryvok vo svojej hlave pomocou explicitných krokov: správanie pri definovaní vs správanie pri volaní, ktorý rozsah vlastní každý názov a ktorý objekt dekorátor vracia. Bez časovača a s 4 možnosťami na otázku, zaobchádzajte s každou položkou ako s mini-debuggingovou reláciou, nie ako s testom rýchlosti.

Ukážkové otázky

Aký je termín pre oblasť programu, kde je premenná prístupná?

  • A.Rozsah
  • B.Kontext
  • C.Blok
  • D.Oblasť

Ktoré kľúčové slovo sa používa na deklaráciu globálnej premennej v Pythone?

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

Aký typ funkcie vám umožňuje pripojiť správanie k existujúcej funkcii?

  • A.Dekorátor
  • B.Uzávierka
  • C.Generátor
  • D.Callback

FAQ kvízu

Koľko otázok je v tomto kvíze?

Tento kvíz má 128 otázok o Python rozsahoch, uzávierkach a dekorátoroch.

Je tento kvíz časovo obmedzený?

Nie. Nie je tu časovač, takže si môžete vziať čas na čítanie kódu a uvažovanie o rozsahu a väzbách.

Aký formát odpovedí používa kvíz?

Každá otázka je s výberom z viacerých možností s 4 možnosťami.

Môžem si vybrať počet otázok a obtiažnosť?

Áno. Pred začatím si vyberte počet otázok a vyberte úroveň obtiažnosti; Zmiešaná kombinuje ľahké, stredné a ťažšie položky.

Aké témy sú pokryté okrem základných pravidiel rozsahu?

Uvidíte vyhľadávanie LEGB, globálne/nonlocal, zachytenie uzávierok, neskoré viazanie, vzory dekorátorov a bežné chyby obalov.

Súvisiace kvízy

Rust: vlastníctvo, požičiavanie a životnosti

Rust: vlastníctvo, požičiavanie a životnosti

Prehlbte svoje porozumenie modelu vlastníctva v Rust, pravidlám požičiavania a anotáciám životnosti pomocou praktických otázok zameraných na kód. Prejdete si bežné chyby kompilátora, vyberiete najbezpečnejšie opravy a vybudujete si intuíciu o tom, ako myslí kontrolór požičiavania. Vyberte si preferovanú obtiažnosť a počet otázok, potom sa učte vlastným tempom bez časového obmedzenia.

3,591
Hrať teraz
JavaScript: promisy, async a event loop

JavaScript: promisy, async a event loop

Rozmotajte asynchrónne správanie JavaScriptu pomocou otázok o Promisách, async/await, mikroúlohách a event loop. Precvičíte si predpovedanie poradia vykonávania, odhaľovanie jemných časových chýb a výber správneho asynchrónneho vzoru pre skutočný kód. Vyberte si preferovaný počet otázok a obtiažnosť, potom sa učte vlastným tempom bez časového limitu.

1,977
Hrať teraz
Počítačové hardvérové komponenty a ich úlohy

Počítačové hardvérové komponenty a ich úlohy

Zlúčte kľúčové komponenty PC s tým, čo robia a ako ovplyvňujú výkon. Pokrýva CPU, GPU, RAM, typy úložiska, základné dosky, zdroje napájania a porty.

3,512
Hrať teraz
Modely služieb cloud computingu vysvetlené

Modely služieb cloud computingu vysvetlené

Skontrolujte svoje porozumenie tomu, ako sú cloudové služby poskytované a používané. Pokrýva IaaS, PaaS, SaaS, kontajnery vs VM, regióny/availability zóny a základy zdieľanej zodpovednosti.

2,958
Hrať teraz
Kybernetické bezpečnostné hrozby a obrany

Kybernetické bezpečnostné hrozby a obrany

Identifikujte bežné kybernetické hrozby a najlepšie obranné praktiky používané na zníženie rizika. Pokrýva phishing, malware, heslá, MFA, základy šifrovania a bezpečné návyky pri prehliadaní.

4,163
Hrať teraz
Základy syntaxe programovacích jazykov

Základy syntaxe programovacích jazykov

Otestujte si svoje znalosti bežnej syntaxe programovania naprieč populárnymi jazykmi. Otázky sa zameriavajú na premenné, cykly, funkcie a základné dátové štruktúry bez potreby hlbokých teórií informatiky.

4,752
Hrať teraz