style question: anything wrong with super(type(self), self).f() ?
Tom Anderson
twic at urchin.earth.li
Mon Sep 19 12:22:44 EDT 2005
On Mon, 19 Sep 2005, Adam Monsen wrote:
> Is there anything wrong with using something like super(type(self),
> self).f() to avoid having to hardcode a type?
What happens when that method gets called by an overriding method in a
derived class?
> For example:
>
> class A(object):
> def f(self):
> print "in A.f()"
>
> class B(A):
> def f(self):
> super(type(self), self).f()
>
> obj = A()
> obj.f() # prints "in A.f()"
Continuing your example:
class C(B):
def f(self):
super(type(self), self).f()
obj = C()
obj.f()
Think about what's going to happen. Then try it!
> By "wrong" I mean, is there any reason why this is just a Bad Idea?
That rather depends if the behaviour i demonstrate above is useful to you.
:)
> Seems helpful to me, if I change the name of the 'B' class, I don't have
> to change super() calls as well.
It would indeed be very useful.
tom
--
buy plastic owl
More information about the Python-list
mailing list