⊗pyPmFnNl 21 of 129 menu

La declaración nonlocal en Python

Hay casos en los que en una función externa hay una variable a la que se necesita acceder desde la función interna. Declaremos en la función outer la variable i. En relación a la función interna, esta variable será externa (las variables globales son solo las declaradas en el código externo). Y a la función inner asignémosle la suma de i más uno:

def outer(): i = 0 def inner(): i += 1 # dará error inner() return i

Sin embargo, para inner la variable i es local, Python la considera no declarada y muestra el error correspondiente. Antes, este tipo de error se solucionaba usando la declaración global. Sin embargo, aquí i es una variable externa, por lo tanto se debe usar la declaración nonlocal. Esta toma los nombres de variables listados en el ámbito de visibilidad más cercano, excluyendo el global, es decir, i dentro de inner se tomará de la variable declarada arriba de esta función:

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

En el siguiente código, algún programador cometió un error:

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

¿Qué está mal con este código? Encuentre y corrija el error del autor del código.

En el siguiente código, algún programador cometió un error:

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

¿Qué está mal con este código? Encuentre y corrija el error del autor del código.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar