在__init__中调用类方法

时间:2015-03-20 11:58:54

标签: python class

我想在班级connect()内的__init__()方法中调用方法db_connector()

到目前为止,这是我的代码:

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()

想法?

1 个答案:

答案 0 :(得分:1)

从您的__init__调用另一种方法很好,这不是您的问题的原因。相反,您以某种方式错误拼写了__init__方法,而创建实例最终会调用object.__init__

仔细检查方法的拼写,并确保它正确缩进以成为db_connector类定义的一部分。