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/2009-February/085876.html below:

[Python-Dev] Missing operator.call

[Python-Dev] Missing operator.callGuido van Rossum guido at python.org
Wed Feb 4 20:04:48 CET 2009
I believe the omission of call from the operator module is an
oversight, perhaps caused by the existence (when the operator module
was created) of apply. Since apply has been removed from 3.0, we
should add operator.call (with the same signature) back. It should be
a straightforward wrapper around one of the PyObject_Call* functions.
Also note that using __call__ can lead to all sorts of problems when
looking at classes -- all class objects have a __call__ attribute,
because their metaclass (type) has one, but should not be confused
with a __call__ method defined in the class. A quick illustration:

>>> class C(object):
...   def __call__(self): print "instance call"
...
>>> C()
<__main__.C object at 0xf7f9052c>
>>> C()()
instance call
>>> C.__call__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method __call__() must be called with C instance as
first argument (got nothing instead)
>>> C.__call__(C())
instance call
>>> C.__class__.__call__(C)
<__main__.C object at 0xf7f9048c>
>>>

-- 
--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