Есть, однако,
определение, проясняющее суть:
Сериализация (в программировании) — процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации (структуризации) — восстановление начального состояния структуры данных из битовой последовательности.
Пример.
У вас есть экземляр класса Table, и вы хотите этот экземпляр сохранить в файл, чтобы потом продолжить с ним работу. Как вы сохраните этот экземпляр в файл, чтобы потом загрузить его обратно и превратить снова в экземлпяр класса Table? Вот для этого и нужен процесс сериализации и ему обратный.
Вот небольшой пример, который это иллюстрирует.
# serialization and deserialization example
class Table:
def __init__(self, w, h):
self.width = w
self.height = h
def serialize_table_and_save(obj, filename='data.dat'):
with open(filename, 'w') as f:
f.write('{},{}'.format(obj.width, obj.height))
def load_and_deserialize_table(filename='data.dat'):
obj = None
with open(filename, 'r') as f:
try:
w, h = f.read().split(',')
obj = Table(float(w), float(h))
except: # I know, that isn't good...
print('Something goes wrong...')
return obj
if __name__ == '__main__':
print('Lets create an instance of the class Table')
new_table = Table(2, 4)
print('The instance was created successfully...')
print('Lets try to save it to a file')
serialize_table_and_save(new_table)
print('Created instance of the class Table was saved to a file')
print('Lets delete saved instance')
del new_table
print('There is no instances of the class Table in the global namespace')
print('Lets restore one from the file')
just_created_table = load_and_deserialize_table()
if isinstance(just_created_table, Table):
print('Test successfully passed: an instance of the class Table was saved to a file and succuessfully loaded from it.')
else:
print('Something was wrong during (de)serialization or I/O operations')
print('Good bye!')