Legjobb válasz
Lásd ezt a kódot.
- számláló = 0
- def növekmény ():
- számláló + = 1
- növekmény ()
A Pythonnak nincsenek változó deklarációi, ezért magának kell kitalálnia a változók körét. Ezt egy egyszerű szabály szerint teszi: Ha van hozzárendelés a egy függvényen belüli változó, az a változó lokálisnak tekinthető. Így a
számláló + = 1
a számlálót implicit módon lokálissá teszi az inkrementumhoz (). Bár megpróbálja végrehajtani ezt a sort, megpróbálja elolvasni a helyi változó számlálójának értékét, mielőtt hozzárendelnék. egy UnboundLocalError-ban.
Az ilyen típusú hibák megoldásához hajtsa végre a következő változtatásokat.
- számláló = 0
- def növekmény ():
- globális számláló
- számláló + = 1
- növekmény ()
Minden jót!!
Válasz
Az UnboundLocalError felvetődik, amikor egy helyi változóra hivatkoznak, mielőtt még meg lett volna adva hozzárendelve.
Ez a NameError egyik alosztálya
Ez azt jelenti, hogy van olyan azonosítója, amelyet megpróbált elérni, mielőtt hozzárendelték volna, vagy esetleg deklarálták volna.
Az egyik a nyelvek sok baja gyenge gépelési szemantika, többszörös öröklődés és közös alaposztály vagy protokoll nélkül.
Ott i s túlságosan támaszkodik azokra a kivételekre, ahol az önellenőrzés és a fordító következtetései informatívabbak lehetnek a kód futtatása előtt.
Amit úgy gondol, hogy a karakterek beírásakor spórol, hogy érvényesüljön a kódja, verem nyomkövetéssel fizet. .