Найти - Пользователи
Полная версия: Как представить таблицу БД в Python?
Начало » Python для новичков » Как представить таблицу БД в Python?
1 2
tfox
Soteric
Думаю использование классов может существенно упростить задачу.

Ну да. Обвернуть это все в класс.

Данные класса - Список именованных кортежей
Методы класса - Функции которые буду читать/писать. Вообщем предоставят доступ к данным класса.

Soteric
Не совсем :)

Класс представляет собой строку таблицы. Поля таблицы - поля класса.
class Person(Object):
def __init__(self, id, name, email, job):
self.id = id
self.name = name
self.email = email
self.job = job
А в списке будут храниться экземпляры Person.
persons = []
persons.append(Person(1, "John", "john@example.org", "Chief"))
persons.append(Person(2, "Bob", "bob@example.org", "Manager"))
persons.append(Person(3, "Jack", "jack@example.org", "Developer"))
Экземпляры Person конечно будут создаваться в том месте, где происходит выборка из базы. Список можно заменить на словарь, в качестве ключа помещая id конкретного Person.
GaiveR
tfox
Именованный кортеж. Не изменяемый тип данных. Добавить/удалить элементы нельзя. Но само значение элементов поменять можно. Прям как в базе данных.
Нельзя, это все-таки кортеж - неизменяемый тип данных.

Придётся делать что-то вроде:
a = (1, 2, 3)
a = a[1:] + (5,) + a[2:]  # a = (1, 5, 3)
а это медленно и некрасиво.

Так что если нужно менять значения элементов, лучше использовать изменяемый тип данных: список, словарь или класс.
MayakOV
2tfox: исключительно аваторкой навеяло - dbfpy (http://dbfpy.sourceforge.net/)
tfox
MayakOV
исключительно аваторкой навеяло - dbfpy

tfox
были времена xBase, FoxPro, Paradox
tfox
GaiveR
Так что если нужно менять значения элементов, лучше использовать изменяемый тип данных: список, словарь или класс.

Да. Точно. Использовать класс.

Вариант предложенный Soteric наиболее интересный. Список классов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB