I can't inherit from "compiled" classes ?
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Sun Apr 29 16:03:52 EDT 2007
In <mailman.7093.1177876116.32031.python-list at python.org>, Maxim Veksler
wrote:
> Hello list,
>
> I'm trying to subclass socket and select, for both I get:
> """ TypeError: Error when calling the metaclass bases
> module.__init__() takes at most 2 arguments (3 given) """, I don't
> understand this error. Why would python try to pass 3 arguments (what
> are they) ?
>
> Googling for this error gave random results talking about try to
> inherit a "Package" but socket is definitely a class,
> (/usr/lib/python2.4/socket.py). Not sure about select thought.
>
> I've did the following to receive the error:
> """
> In [1]: import socket
>
> In [2]: class PollingSocket(socket):
> ...: pass
> ...:
> ---------------------------------------------------------------------------
> exceptions.TypeError Traceback (most
> recent call last)
>
> /home/hq4ever/<ipython console>
>
> TypeError: Error when calling the metaclass bases
> module.__init__() takes at most 2 arguments (3 given)
> """
>
>
> What am I breaking wrong?
You are trying to subclass a module here, just like the error message
says. The module contains a `socket` type:
In [3]: import socket
In [4]: type(socket)
Out[4]: <type 'module'>
In [5]: type(socket.socket)
Out[5]: <type 'type'>
`select.select()` is a function:
In [6]: import select
In [7]: type(select.select)
Out[7]: <type 'builtin_function_or_method'>
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list