map/filter/reduce/lambda opinions and background unscientific mini-survey
Dan Sommers
me at privacy.net
Wed Jul 6 14:00:36 EDT 2005
On Wed, 06 Jul 2005 15:18:31 GMT,
Ron Adam <rrr at ronadam.com> wrote:
> Dan Sommers wrote:
>> On Wed, 06 Jul 2005 14:33:47 GMT,
>> Ron Adam <rrr at ronadam.com> wrote:
>>
>>> Since this is a Python 3k item... What would be the consequence of
>>> making None the default value of an undefined name? And then assigning
>>> a name to None as a way to delete it?
>> [ ... ]
>>
>>> Any drawbacks?
>> Lots more hard-to-find errors from code like this:
>> filehandle = open( 'somefile' )
>> do_something_with_an_open_file( file_handle )
>> filehandle.close( )
>> Regards,
>> Dan
[ ... ]
> If "file_handle" (vs "filehandle") is None. Then you will still get an
> error as soon as you tried to use the invalid file handle.
> AttributeError: 'NoneType' object has no attribute 'read'
This is the one of which I was thinking. So you see this error at the
end of a (long) traceback, and try to figure out where along the (long)
line of function calls I typed the wrong name. Currently, the very end
of the traceback points you right at the bad code and says "NameError:
name 'filehandle' is not defined," which tells me (very nearly) exactly
what I did wrong.
> If the error was filehundle.close() you will get:
s/u/a/
;-)
> I don't think any of those would be hard to find.
I guess it depends on how long your traceback is and how big those
functions are. Also, from the Zen:
Explicit is better than implicit.
although from previous threads, we know that every pythonista has his or
her own definitions of "explicit" and "implicit."
Regards,
Dan
--
Dan Sommers
<http://www.tombstonezero.net/dan/>
More information about the Python-list
mailing list