PyWart: Language missing maximum constant of numeric types!

Steven D'Aprano steve+comp.lang.python at
Sun Feb 26 14:50:01 CET 2012

On Sun, 26 Feb 2012 14:16:24 +0100, Wolfgang Meiners wrote:

> I just had a closer look at it. It seems to be more complicated than i
> thougth: You will have to write
> def confine_length(string, maxlength=None):
>     if maxlength: # maxlength exists, comparison possible
>         if len(string) <= maxlength:
>             do_something()
>     else: # maxlength does not exist, so always do something
>         do_something()

No, that still takes the wrong branch for maxlength = 0.

Be explicit in your code. If you want maxlength=None to be a sentinel for 
"avoid the length test", then explicitly test for maxlength is None, 
don't be tempted to take short-cuts that can fail.

def confine_length(string, maxlength=None):
    if maxlength is None:  # no length comparison needed
    elif len(string) <= maxlength:

This can be simplified to:

def confine_length(string, maxlength=None):
    if maxlength is None or len(string) <= maxlength:

Or even simpler:

def confine_length(string, maxlength=float('inf')):
    if len(string) <= maxlength:


More information about the Python-list mailing list