title: Unbound variable and name
body: <p>According to the <code>python reference manual</code> we have</p>
  <blockquote>
  <p>When a name is not found at all, a NameError exception is raised. If
  the name refers to a local variable that has not been bound, a
  UnboundLocalError exception is raised. UnboundLocalError is a subclass
  of NameError.</p>
  </blockquote>
  <p>I don't to understand when the <code>UnboundLocalError</code> is thrown? Because</p>
  <blockquote>
  <p>Python lacks declarations and allows name binding operations to occur
  anywhere within a code block.</p>
  </blockquote>
  <p>So how we can declare a variable, but not to initialize her?</p>