List comprehension vs filter()

Chris Rebert clp2 at rebertia.com
Wed Apr 20 05:45:25 CEST 2011


On Tue, Apr 19, 2011 at 8:23 PM, Chris Angelico <rosuav at gmail.com> wrote:
> On Wed, Apr 20, 2011 at 1:22 PM, Chris Rebert <clp2 at rebertia.com> wrote:
>> On Tue, Apr 19, 2011 at 8:10 PM, Chris Angelico <rosuav at gmail.com> wrote:
>> <snip>
>>> type=lst[0]["type"].lower()
>>
>> Tangent: Don't call it "type"; you're shadowing the built-in class of
>> the same name.
>
> By "shadowing" you mean that the global variable still exists, right?
> I'm creating a local variable with the same name? That's how I'm
> interpreting the results of changing the variable name.

Built-ins aren't quite the same as globals, but essentially yes:
$ python
Python 2.6.6 (r266:84292, Jan 12 2011, 13:35:00)
>>> len
<built-in function len>
>>> len = 5
>>> len
5
>>> del len
>>> len
<built-in function len>
>>> del len
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'len' is not defined
>>> len
<built-in function len>

Cheers,
Chris
--
http://rebertia.com



More information about the Python-list mailing list