On Thu, 03 Jan 2008 16:56:00 -0600, Reedick, Andrew wrote:
> The problem occurred because a method used to generate keys was
> returning a string instead of a number without an explicit conversion
> taking place. And since I was using hash.get(i, default_value) to avoid
> having to pair every key lookup with a hash.has_key(), no exception was
> thrown when the key wasn't found.
# How to fix this broken function without modifying the source?
def foo(arg):
"""Returns a string instead of a number."""
return "1" # oops I meant 1
_foo = foo # save a reference to original broken function
foo = lambda *args, **kwargs: int(_foo(*args, **kwargs)) # and patch it
And now you can use foo(arg) confident that it will always return an int
like you expect.
Modifications of this technique should be obvious.
--
Steven
--
http://mail.python.org/mailman/listinfo/python-list