Я считаю, что удобочитаемость и принцип KISS - самые важные вещи в программировании. Вот почему я использую Python :)
И вот точная ситуация, с которой я сталкиваюсь очень часто:
Скажем, у меня есть красивый и чистый сценарий, который является оболочкой для обработки базы данных:
import database_schema as schema
loader = schema.Loader("sqlite:///var/database.db")
session = loader.session
def addUser(name, full_name, password):
user = schema.User(name, full_name, password)
session.add(user)
session.commit()
def listUsers():
all_users = session.query(schema.User).all()
return all_users
Который используется следующим образом:
import database
database.addUser("mike", "Mike Driscoll", "password")
database.listUsers()
В какой-то момент я хотите переписать этот модуль, чтобы он мог работать с базами данных по другому пути (например, для модульного тестирования).
Итак, каковы мои варианты?
Самым интуитивно понятным является добавление database_path = = ""
переменная, а потом ... что? Установка его с помощью функции setPath (new_path)
, а затем добавление исключения ( if database_path == "": поднять SomeException
) для каждой отдельной функции просто некрасиво и не должно выполняться кем угодно.
Полнофункциональный класс с установкой self._database_path
во время инициализации.
Который затем используется следующим образом: удалить строки таблицы в зависимости от повторяющихся значений столбца? У меня есть таблица со столбцом года, и в этом столбце не должно быть повторяющихся значений. Так, например, я получаю таблицу только с одной записью за 2007 год. Итак, как мне удалить те строки, в которых есть ...
У меня есть таблица со столбцом года, и в этом столбце не должно быть повторяющихся значений. Таким образом, я получаю таблицу, например, только с одной записью за 2007 год.
Итак, как я могу удалить те строки, которые имеют повторяющееся значение года?
Спасибо