[Patches] [ python-Patches-1498363 ] Improve super() objects support for implicit method calls

SourceForge.net noreply at sourceforge.net
Mon Jul 17 15:13:23 CEST 2006


Patches item #1498363, was opened at 2006-05-31 13:31
Message generated for change (Comment added) made by collinwinter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1498363&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core (C code)
Group: Python 2.6
Status: Open
Resolution: None
Priority: 5
Submitted By: Collin Winter (collinwinter)
Assigned to: Raymond Hettinger (rhettinger)
Summary: Improve super() objects support for implicit method calls

Initial Comment:
The attached patch lets super() objects pass on
implicit __getitem__, __setitem__, __delitem__, __len__
and __hash__ calls. For example, to use len() with
super() objects, one must currently do something like

super(X, X()).__len__()

Likewise for __getitem__,

super(X, X()).__getitem__(item)

That's ugly.

This patch lets these be spelled as

len(super(X, X())) and super(X, X())[item], respectively.

The patch also includes documentation updates and tests
for the new functionality.

The patch was taken against r46582.

----------------------------------------------------------------------

>Comment By: Collin Winter (collinwinter)
Date: 2006-07-17 09:13

Message:
Logged In: YES 
user_id=1344176

I only added these particular methods because they were a)
the only ones I needed at the time, b) the only ones I
really had time to implement. I've now got a few more tuits
freed up, so I'd be happy to implement more of these methods.

As for "explicit is better than implicit", I don't see how
that applies here. The same case could be made for all of
Python's syntax-assisted method calls.

----------------------------------------------------------------------

Comment By: Georg Brandl (gbrandl)
Date: 2006-07-17 09:05

Message:
Logged In: YES 
user_id=849994

Why only these methods? Why not __add__, __call__ etc.?
Implementing all of these methods is a pain and adds
considerable complexity to typeobject.c.

Frankly, I don't see an improvement since you normally only
call super.__getitem__ in __getitem__, and explicit is
better than implicit. Raymond, do you have a second opinion?

----------------------------------------------------------------------

Comment By: Collin Winter (collinwinter)
Date: 2006-06-27 08:22

Message:
Logged In: YES 
user_id=1344176

The patch has been updated to reflect the current SVN state,
r47124.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1498363&group_id=5470


More information about the Patches mailing list