Форум сайта python.su
857
FeelgoodКласс SQLite, который я создал, является адаптером для модуля sqlite3 в питоне. Адаптер - это такая фигня, в которой ты можешь методы и поля написать как угодно, и снаружи он будет выглядеть так, как ты захочешь. При этом с другой стороны к нему подключается уже что-то такое, в чём ты методы и поля не можешь поменять. Так вот эти методы, которые ты не можешь поменять, могут быть жутко неудобными, требовать каких-то там синтаксических конструкций забубённых. Таких средств с такими методами может быть дофига и все они могут быть неудобными и, главное, могут сильно различаться между собой. Поэтому ты делаешь один удобный адаптер (с удобными методами) и управляешь им - пишешь программу на его основе. А к нему ты уже можешь подключать любую неудобную хрень и она будет правильно работать, потому что адаптер научен, как ею управлять. Благодаря адаптеру ты можешь менять одну хрень на другую хрень, но при этом вся твоя программа остаётся неизменной, потому что она пользуется только адаптером.
можете построчно рассказать что делает эта функция
FeelgoodЗдесь написаны вопросы на месте подстановок. Но эти вопросы не стандартизованы и относятся только к одному модулю sqlite3 в питоне. Если вдруг модуль sqlite3 тебе не подойдёт и его надо будет заменить на другой модуль, то эти вопросы тоже надо будет менять на синтаксис того модуля. И прикинь, если у тебя таких мест в коде, где используется синтаксис модуля sqlite3, дофига. Тебе придётся полпрограммы менять. И так каждый раз при смене любого модуля.c.execute('''INSERT INTO finance(description, costs, total) VALUES (?, ?, ?)''', (description, costs, total))
def execute(self, cmd, subvars=None): (1)
if subvars is None: (2)
self.cur.execute(cmd) (3)
else: (4)
newcmd = translate_universal_to_sqlite3(cmd) (5)
self.cur.execute(newcmd, subvars) (6)
self.conn.commit() (7)
Отредактировано py.user.next (Дек. 8, 2017 02:54:04)
Офлайн