2015-03-20 3 views
0

Я хочу вызвать метод connect() в моем методе __init__() внутри моего класса db_connector().Метод вызова класса внутри __init__

Вот мой код до сих пор:

class db_connector(object): 

    def connect(self, db_data): 

     try: 
      self.__con = psycopg2.connect(database = db_data['dbname'], user = db_data['user']) 
      self.__cur = self.__con.cursor() 
      logging.info(" Successfully connected to db.") 
      return True 

     except psycopg2.DatabaseError: 
      logging.exception(" Error while connecting to db. Maybe check your login-data.") 
      return False 

    def __init__(self, db_data): 

     self.__con = None 
     self.__cur = None 

     if self.__con: 
      self.connect(db_data) 

я получаю:

TypeError: object() takes no parameters 

Я также попытался переключения позиции из __init__() и connect(), так __init__() закончилась connect() - но в этом случае, он даже не может найти метод connect().

Идеи?

+0

Ошибка указывает, что вы ошибочно написали имя метода '__init__'. –

+0

Да, потому что он пытается вызвать объект .__ init__ .. Но это не проблема с ошибкой. – jwi

+0

Вы не дали нам * воспроизводимый образец * здесь; мы не можем видеть, как вы * используете * этот класс, и не включали полную трассировку. –

ответ

1

Вызов другого метода из вашего __init__ в порядке, а не причина ваших проблем здесь. Вместо этого вы как-то ошибочно написали метод __init__, и создание экземпляра в конечном итоге вызывает object.__init__.

Двойной контроль орфографии метода и убедитесь, что он правильно отформован, чтобы быть частью определения класса db_connector.

Смежные вопросы