On 14 Jan 2010 19:19:53 GMT
Duncan Booth <duncan.bo...@invalid.invalid> wrote:
> > ishex2 = lambda s: not(set(s)-set(string.hexdigits))     # Yours
> > ishex3 = lambda s: not set(s)-set(string.hexdigits)      # Mine
> > 
> > I could actually go three better:
> > 
> > ishex3=lambda s:not set(s)-set(string.hexdigits)
> 
> But none of those pass your own "ishex('') should return False" test.

Good point.  Obviously a unit test was missing.

Of course, all this is good clean fun but I wonder how useful an ishex
method really is.  Personally I would tend to do this instead.

try: x = isinstance(s, int) and s or int(s, 0)
except ValueError: [handle invalid input]

IOW return the value whether it is a decimal string (e.g. "12"), a hex
string (e.g. "0xaf") or even if it is already an integer.  Of course,
you still have to test for '' and None.

Naturally this all depends heavily on the actual requirements.  Perhaps
that's why there is no ishex method in the first place.  Such a method
could wind up with more options than ls(1)

-- 
D'Arcy J.M. Cain <da...@druid.net>         |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to