sentencia publicas locales globales funciones ejemplos declarar python python-3.x

python - publicas - Variable local(?) Referenciada antes de la asignación



variables locales ejemplos (3)

Debes especificar que test1 es global:

test1 = 0 def testFunc(): global test1 test1 += 1 testFunc()

Posible duplicado:
var local referenciado antes de la asignación
Python 3: UnboundLocalError: variable local a la que se hace referencia antes de la asignación

test1 = 0 def testFunc(): test1 += 1 testFunc()

Estoy recibiendo el siguiente error:

UnboundLocalError: variable local ''test1'' a la que se hace referencia antes de la asignación.

El error dice que ''test1'' es una variable local, pero pensé que esta variable es global

Entonces, ¿es global o local y cómo resolver este error sin pasar global test1 como argumento para testFunc ?


La mejor solución: No use s global

>>> test1 = 0 >>> def test_func(x): return x + 1 >>> test1 = test_func(test1) >>> test1 1


Para poder modificar test1 mientras está dentro de una función, deberá definir test1 como una variable global, por ejemplo:

test1 = 0 def testFunc(): global test1 test1 += 1 testFunc()

Sin embargo, si solo necesita leer la variable global, puede imprimirla sin utilizar la palabra clave global , como esta:

test1 = 0 def testFunc(): print test1 testFunc()

Pero siempre que necesite modificar una variable global, debe usar la palabra clave global .