[pypy-dev] improve error message when missing 'self' in method definition

Leonardo Santagada santagada at gmail.com
Mon Oct 3 04:53:41 EDT 2016


I've already proposed something like this a looong time ago and guido even
said it is a good idea. I never got around to implementing it. How
difficult would be to port this to CPython? The patch seems very concise

On Wed, Sep 28, 2016 at 8:17 AM, Maciej Fijalkowski <fijall at gmail.com>
wrote:

> On Tue, Sep 27, 2016 at 8:33 PM, Ryan Gonzalez <rymg19 at gmail.com> wrote:
> > Have you considered bringing this up on python-ideas, too?
>
> python-idea is generally quite a hostile place. That said, if you
> think it's worth your effort to submit it there, feel free to do so,
> just the core pypy devs feel their time is better spent elsewhere than
> arguing on python-ideas
>
> >
> > On Tue, Sep 27, 2016 at 12:19 PM, Carl Friedrich Bolz <cfbolz at gmx.de>
> wrote:
> >>
> >> Hi all,
> >>
> >> I read this paper today about common mistakes that Python beginners
> >> make:
> >>
> >>
> >> https://www.researchgate.net/publication/307088989_Some_
> Trouble_with_Transparency_An_Analysis_of_Student_Errors_
> with_Object-oriented_Python
> >>
> >> The most common one by far is forgetting the "self" parameter in the
> >> method definition (which also still happens to me regularly). The error
> >> message is not particularly enlightening, if you don't quite understand
> >> the explicit self in Python.
> >>
> >>
> >> So I wonder whether we should print a better error message, something
> >> like this:
> >>
> >> $ cat m.py
> >> class A(object):
> >>     def f(x):
> >>         return self.x
> >> A().f(1)
> >>
> >> $ pypy m.py
> >> Traceback (application-level):
> >>   File "m.py", line 4 in <module>
> >>     A().f(1)
> >> TypeError: f() takes exactly 1 argument (2 given). Did you forget 'self'
> >> in the function definition?
> >>
> >>
> >> It's a bit the question how clever we would like this to be to reduce
> >> false positives, see the attached patch for a very simple approach.
> >>
> >> Anyone have opinions?
> >>
> >> Cheers,
> >>
> >> Carl Friedrich
> >>
> >> _______________________________________________
> >> pypy-dev mailing list
> >> pypy-dev at python.org
> >> https://mail.python.org/mailman/listinfo/pypy-dev
> >>
> >
> >
> >
> > --
> > Ryan
> > [ERROR]: Your autotools build scripts are 200 lines longer than your
> > program. Something’s wrong.
> > http://kirbyfan64.github.io/
> >
> >
> > _______________________________________________
> > pypy-dev mailing list
> > pypy-dev at python.org
> > https://mail.python.org/mailman/listinfo/pypy-dev
> >
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> https://mail.python.org/mailman/listinfo/pypy-dev
>



-- 

Leonardo Santagada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20161003/d5a0025f/attachment.html>


More information about the pypy-dev mailing list