title: Redefining python built-in function
body: <p>I'm working on a python program and the author has written a function that looks like this</p>
  <pre><code>def blah():
      str = &quot;asdf asdf asdf&quot;
      doStuff(str)
  </code></pre>
  <p>This seems to work, even though str is a built in function and shouldn't be used as a variable.</p>
  <p>What is actually happening here?  My guess is str will no longer be usable as a function, but only in the scope of the blah() function he's written.  Is that correct?  This won't redefine str globally, right?</p>