У меня есть простой класс для извлечения запроса из базы данных.Использование класса без вызова конструктора в python
# myClass.py
class DB:
def __init__ (self, host, user, password):
self.conn = MySQLdb.connect("localhost","****","****","***")
self.conn.set_character_set('utf8mb4')
cursor = self.conn.cursor()
cursor.execute('SET NAMES utf8mb4;')
cursor.execute('SET CHARACTER SET utf8mb4;')
cursor.execute('SET character_set_connection=utf8mb4;')
def query(self, q):
cursor = self.conn.cursor()
cursor.execute(q)
return cursor
Если я использую ниже запрос с ним работает нормально,
from myClass import DB
q = DB("..", "..", "..", "..")
_fetch = q.query("... ")
Однако, если я хотел бы избавиться от второй линии, так как я объявляющего пользователю, передайте, хозяин .. в MyClass .py
Так что, когда я пытаюсь
from myClass import DB
_fetch = DB.query("... ")
это не позволит мне подключиться, даже если я удалить self,
ключевое слово для запроса
такой же, как http://stackoverflow.com/questions/7396092/is-there-a-static-constructor-or-static-initializer-in-python просто вызовите метод на уровне класса –
Посмотрите на использование декоратора '@ classmethod'. –
Итак, почему бы просто не удалить аргументы и использовать 'DB(). Query()'? Или создайте метод класса, и в этом классе создайте экземпляр. –