On Thu, 17 Jun 2010 13:48:45 -0400, J. Cliff Dyer wrote: > super gives you an instantiated version of the super class, which means > that you don't have to explicitly send self to any methods you call on > it. > > So use `super().__init__()` instead.
Thanks. Interestingly enough, it works in Python 3, which is what the book is about. It doesn't work in Python 2.6 3.1: Python 3.1.1+ (r311:74480, Nov 2 2009, 14:49:22) [GCC 4.4.1] on linux2 Type "copyright", "credits" or "license()" for more information. ==== No Subprocess ==== >>> class P: def __init__(self): print("I am a member of class P") >>> class C(P): def __init__(self): super().__init__() print("I am a member of class C") >>> x=C() I am a member of class P I am a member of class C >>> 2.6: Python 2.6.4 (r264:75706, Dec 7 2009, 18:45:15) [GCC 4.4.1] on linux2 Type "copyright", "credits" or "license()" for more information. **************************************************************** Personal firewall software may warn about the connection IDLE makes to its subprocess using this computer's internal loopback interface. This connection is not visible on any external interface and no data is sent to or received from the Internet. **************************************************************** IDLE 2.6.4 ==== No Subprocess ==== >>> class P: def __init__(self): print("I am a member of class P") >>> class C(P): def __init__(self): super().__init__() print("I am a member of class C") >>> x=C() Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> x=C() File "<pyshell#1>", line 3, in __init__ super().__init__() TypeError: super() takes at least 1 argument (0 given) >>> -- The missionaries go forth to Christianize the savages - as if the savages weren't dangerous enough already. -- http://mail.python.org/mailman/listinfo/python-list