Is it possible only to declare a variable without assigning any value in Python?


Is it possible to declare a variable in Python, like so?:


so that it initialized to None? It seems like Python allows this, but as soon as you access it, it crashes. Is this possible? If not, why?

EDIT: I want to do this for cases like this:


for index in sequence:

   if value == None and conditionMet:
       value = index


5/23/2017 12:10:41 PM

Accepted Answer

Why not just do this:

var = None

Python is dynamic, so you don't need to declare things; they exist automatically in the first scope where they're assigned. So, all you need is a regular old assignment statement as above.

This is nice, because you'll never end up with an uninitialized variable. But be careful -- this doesn't mean that you won't end up with incorrectly initialized variables. If you init something to None, make sure that's what you really want, and assign something more meaningful if you can.

3/19/2009 10:50:19 PM

I'd heartily recommend that you read Other languages have "variables" (I added it as a related link) – in two minutes you'll know that Python has "names", not "variables".

val = None
# ...
if val is None:
   val = any_object

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow