我想在班级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()
。
想法?
答案 0 :(得分:1)
从您的__init__
调用另一种方法很好,这不是您的问题的原因。相反,您以某种方式错误拼写了__init__
方法,而创建实例最终会调用object.__init__
。
仔细检查方法的拼写,并确保它正确缩进以成为db_connector
类定义的一部分。