⊗pyPmFnNl 21 of 129 menu

Instrukcja nonlocal w Pythonie

Zdarzają się przypadki, gdy w funkcji zewnętrznej znajduje się zmienna, do której trzeba uzyskać dostęp w funkcji wewnętrznej. Zadeklarujmy w funkcji outer zmienną i. W stosunku do funkcji wewnętrznej ta zmienna będzie zmienną zewnętrzną (globalnymi są zmienne zadeklarowane TYLKO w kodzie zewnętrznym). A funkcji inner ustawmy dodanie do i jedynki:

def outer(): i = 0 def inner(): i += 1 # wyświetli [4, 9, 25] inner() return i

Jednak dla inner zmienna i jest lokalna, Python uważa ją za niezadeklarowaną i wyświetla odpowiedni błąd. Wcześniej taki błąd był naprawiany za pomocą instrukcji global. Jednak tutaj i jest zmienną zewnętrzną, dlatego należy użyć instrukcji nonlocal. Pobiera ona wymienione nazwy zmiennych do najbliższego zakresu widoczności, z wyłączeniem globalnego, czyli i wewnątrz inner zostanie pobrana ze zmiennej, zadeklarowanej powyżej tej funkcji:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # wyświetli 1

W następnym kodzie jakiś programista popełnił błąd:

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

Co jest nie tak z tym kodem? Znajdź i popraw błąd autora kodu.

W następnym kodzie jakiś programista popełnił błąd:

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

Co jest nie tak z tym kodem? Znajdź i popraw błąd autora kodu.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć