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/2003-October/038598.html below:

[Python-Dev] Re: More informative error messages

[Python-Dev] Re: More informative error messagesGuido van Rossum guido at python.org
Wed Oct 8 14:23:18 EDT 2003
> > For better or for worse, the distinction between a function and a
> > bound method is gone by the time it's called, and recovering that
> > difference is going to be tough.  Not in terms of serious overhead,
> > but in terms of serious changes to code that is already extremely
> > subtle.  That code it's so subtle *because* we want to keep function
> > call overhead as low as possible, and anything that would add even a
> > fraction of a microsecond to the cost of calling a function with the
> > correct number of arguments will be scrutinized to death.
> 
> Agreed.  I just looked at the code to see why.  Its much more
> difficult than I imagined (except in one easy looking case in ceval.c).
> 
> For anyone who hasn't read the code, the Python/getargs.c vgetargs1()
> function that parses the argument description string has no knowledge
> of the PyCFunction object its checking arguments for.  Major restruring
> to do this could be done several ways but is a huge task for speed and
> C interface compatibility reasons.

Um, when is this a problem for methods implemented in C?  AFAIK the
problem only exists for Python methods: take e.g. append() as an
example of a C method, and everything is fine:

  >>> [].append(1,2 )
  Traceback (most recent call last):
    File "<stdin>", line 1, in ?
  TypeError: append() takes exactly one argument (2 given)
  >>>

The issue is really in ceval.c...

--Guido van Rossum (home page: http://www.python.org/~guido/)

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