Я очень новый. Весь мой опыт находится на стороне БД, поэтому я теряюсь на стороне Python. Тем не менее я пытаюсь создать класс, который я могу использовать для выполнения хранимых процедур. Я использую Python 3.4.3. Я нашел класс mysql в github и упростил/модифицировал его, чтобы сделать proc-вызов, и он не работает.Класс Python Mysql для вызова хранимой процедуры
mysqlquery.py
import mysql.connector, sys
from collections import OrderedDict
class MysqlPython(object):
__host = None
__user = None
__password = None
__database = None
__procname = None
__inputvals = None
def __init__(self, host='localhost', user='root', password='', database=''):
self.__host = host
self.__user = user
self.__password = password
self.__database = database
## End def __init__
def __open(self):
cnx = mysql.connector.connect(self.__host, self.__user, self.__password, self.__database)
self.__connection = cnx
self.__session = cnx.cursor()
## End def __open
def __close(self):
self.__session.close()
self.__connection.close()
## End def __close
def proc(self,procname,inputvals):
self.__open()
self.__session.callproc(procname, inputvals)
## End for proc
## End class
test.py
from mysqlquery import MysqlPython
connect_mysql = MysqlPython()
result = connect_mysql.proc ('insertlink','1,www.test.com')
Я получаю эту ошибку
TypeError: __init__() takes 1 positional argument but 5 were given
Глядя на мой INIT, это займет 5 арг, как это должно быть. Не знаю, почему я получаю это. Опять же, я очень новичок, так что это может быть простая проблема.
Спасибо за любую помощь.
G
После объявления __init__ добавить: символ – user1929959
Отбросьте все эти двойные подчеркивания. Они не делают то, что думают, и почти наверняка вызовут вас в будущем. –