⊗pyPmFnNl 21 of 129 menu

A instrução nonlocal em Python

Há casos em que uma função externa tem uma variável à qual precisamos acessar na função interna. Vamos declarar na função outer a variável i. Em relação à função interna, esta variável será uma variável externa (variáveis globais são apenas aquelas declaradas NO código externo). E para a função inner vamos definir a adição de um a i:

def outer(): i = 0 def inner(): i += 1 # resultará em erro inner() return i

No entanto, para inner a variável i é uma variável local, Python a considera não declarada e exibe o erro correspondente. Antes, esse tipo de erro era corrigido usando a instrução global. No entanto, aqui i é uma variável externa, portanto, deve-se usar a instrução nonlocal. Ela busca os nomes de variáveis listados no escopo mais próximo, excluindo o global, ou seja, i dentro de inner será obtida da variável declarada acima desta função:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # exibirá 1

No código a seguir, algum programador cometeu um erro:

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

O que há de errado com este código? Encontre e corrija o erro do autor do código.

No código a seguir, algum programador cometeu um erro:

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

O que há de errado com este código? Encontre e corrija o erro do autor do código.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar