<p><br>
On Aug 15, 2011 5:56 PM, "Gerrat Rickert" <<a href="mailto:grickert@coldstorage.com">grickert@coldstorage.com</a>> wrote:<br>
><br>
> With surprising regularity, I see program postings (eg. on StackOverflow) from inexperienced Python users  accidentally re-assigning built-in names.<br>
><br>
>  <br>
><br>
> For example, they’ll innocently call some variable, “list”, and assign a list of items to it.<br>
><br>
> ...and if they’re _unlucky_ enough, their program may actually work (encouraging them to re-use this name in other programs).<br>
><br>
>  <br>
><br>
> If they try to use an actual keyword, both the interpreter and compiler are helpful enough to give them a syntax error, but I think the builtins should be “pseudo-reserved”, and a user should explicitly have to do something *extra* ...<br>

>  <br>
><br>
> What sayest the Python community about having an explicit warning against such un-pythonic behaviour (re-assigning builtin names)?<br>
></p>
<p>One of Python's greatest strength's in my opinion is that it strives for consistency. As much as possible, Python avoids differentiating between built-in objects (types or otherwise) and user-defined objects. I think it should stay that way. There are tools that can detect these errors and their use should be encouraged, but the Python interpreter shouldn't single out variables which are types that happen to be built-in from any other variable or any other type.<br>

</p>