[Python-ideas] Better error messages [was: (no subject)]

Paul Moore p.f.moore at gmail.com
Wed Nov 30 04:05:37 EST 2016


On 30 November 2016 at 02:14, Stephen J. Turnbull
<turnbull.stephen.fw at u.tsukuba.ac.jp> wrote:
> How about:
>
>     class Blog:
>         pass
>
>     blog = get_blog_for_date(someday)
>
>     logn = log(blog.size)
>
>     NameError: Python doesn't recognize the function "log".  Did you
>     mean "Blog"?
>
> Wouldn't
>
>     NameError: Python doesn't recognize the name "log".  Perhaps
>     you need to import the "math" module?

... and of course up until this example, I'd assumed you were talking
about the log function from the logging module :-)

I'm a strong +1 on better error messages, but there's always a risk
with heuristics that the resulting messages end up worse, not better.

Maybe keep it simpler:

    NameError: Python doesn't recognize the name "log". Maybe you
misspelled the name, or did you mean to import the function from a
module?

and don't try to guess the user's intent.

Paul


More information about the Python-ideas mailing list