A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2010-May/100201.html below:

[Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method

[Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method [Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a methodStephen J. Turnbull stephen at xemacs.org
Thu May 20 04:55:02 CEST 2010
Giampaolo RodolĂ  writes:
 > >>> class A:
 > ...     def echo(self, x):
 > ...             return x
 > ...
 > >>> a = A()
 > >>> a.echo()
 > Traceback (most recent call last):
 >   File "<stdin>", line 1, in <module>
 > TypeError: echo() takes exactly 2 arguments (1 given)
 > >>>
 > 
 > I bet my last 2 cents this has already been raised in past but I want
 > to give it a try and revamp the subject anyway.
 > Is there a reason why the error shouldn't be adjusted to state that
 > *1* argument is actually required instead of 2?

As a function, it does take two arguments, and can be called
explicitly that way, no?  Adjustment is not enough, the message needs
to be substantially rewritten.  Something like

TypeError: invoked as a method, echo() takes exactly 1 argument (0 given)

captures the semantics, but is perhaps too verbose.
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4