¿Es posible sólo declarar una variable sin asignar ningún valor en Python?

Resuelto Joan Venge asked hace 15 años • 14 respuestas

¿Es posible declarar una variable en Python, así?:

var

para que se inicialice en Ninguno? Parece que Python permite esto, pero tan pronto como accedes, falla. es posible? Si no, ¿por qué?

EDITAR: quiero hacer esto para casos como este:

value

for index in sequence:

   if value == None and conditionMet:
       value = index
       break

preguntas relacionadas

  • ¿Por qué una función puede modificar algunos argumentos tal como los percibe la persona que llama, pero no otros?
  • Declaración de variables de Python

Ver también

  • Nombres y valores de Python
  • Otros idiomas tienen "variables"
Joan Venge avatar Mar 20 '09 05:03 Joan Venge
Aceptado

¿Por qué no hacer simplemente esto?

var = None

Python es dinámico, por lo que no es necesario declarar cosas; existen automáticamente en el primer ámbito donde están asignados. Entonces, todo lo que necesita es una declaración de asignación antigua y normal como la anterior.

Esto es bueno, porque nunca terminarás con una variable no inicializada. Pero tenga cuidado: esto no significa que no terminará con variables inicializadas incorrectamente . Si inicia algo en None, asegúrese de que sea lo que realmente desea y, si puede, asigne algo más significativo.

Todd Gamblin avatar Mar 19 '2009 22:03 Todd Gamblin

En Python 3.6+ puedes usar anotaciones variables para esto:

https://www.python.org/dev/peps/pep-0526/#abstract

PEP 484 introdujo sugerencias tipográficas, también conocidas como anotaciones tipográficas. Si bien su enfoque principal fueron las anotaciones de funciones, también introdujo la noción de comentarios de tipo para anotar variables:

# 'captain' is a string (Note: initial value is a problem)
captain = ...  # type: str

PEP 526 tiene como objetivo agregar sintaxis a Python para anotar los tipos de variables (incluidas las variables de clase y las variables de instancia), en lugar de expresarlas mediante comentarios:

captain: str  # Note: no initial value!

Parece estar más directamente en línea con lo que preguntaba "¿Es posible declarar sólo una variable sin asignar ningún valor en Python?"

Nota: El tiempo de ejecución de Python no aplica anotaciones de tipos de variables y funciones. Pueden ser utilizados por herramientas de terceros, como verificadores de tipos, IDE, linters, etc.

Tagar avatar Nov 08 '2017 21:11 Tagar