On Jan 21, 5:48 pm, tekion <tek...@gmail.com> wrote: > All, > I am trying to write a class which inherits from MySQLdb class. Below > is code snippet: > import MySQLdb > import sys > > class msql_connect(MySQLdb): > def __init__(self): > self.host = "hostname" > self.user = "user" > self.password = "passoword" > self.database = "database name" > > I am running into below error: > class msql_connect(MySQLdb): > TypeError: Error when calling the metaclass bases > module.__init__() takes at most 2 arguments (3 given) > > Does any one have an idea why? Thanks.
MySQLdb is the name of the module, not the class you want to subclass. But MySQLdb.connect() is not the class either...it's a factory function that returns instances of the class you actually want to subclass...connections.Connection(). The below works for me. from MySQLdb import connections import sys class mysql_connect(connections.Connection): def __init__(self): self.host = "host" self.user = "user" self.password = "password" self.database = "database" connections.Connection.__init__(self, host=self.host, user=self.user, passwd=self.password, db=self.database) p = mysql_connect() ~Sean -- http://mail.python.org/mailman/listinfo/python-list