Skip to content

Latest commit

 

History

History
54 lines (40 loc) · 1.63 KB

5b36-python-data-model.md

File metadata and controls

54 lines (40 loc) · 1.63 KB

Python Data Model

#programming #language #python #datastructure #datamodel

Data model is a description or interface for Python as framework. It makes you code easy to interpret and being supported by common functions/methods in python For example if you implement the method __get_item__ you are able to use the following methods on python

  • choice
  • slice [:3]
  • index [1]
  • iteration
# iteration
for obj in objs:
    print(obj)

Python has other methods like __repr__ to represent the object like as the creation of this. __bool__ to make conditional valid or invalid in some situation. __str__ to present/print the object in human-readable way and others.

Obs: It is common to use !r with the function __repr__ and f-strings.

In data models the functions is not call by the use but by the interpreter, in that way, the code has more performance. The only method call by the user is the method to initialize the object/class __init__.

An example of python data model.

import collections

Card = collections.namedtuple('Card', ['rank', 'suit'])

class FrenchDeck:
	ranks = [str(n) for n in range(2, 11) + list('JQKA')]
	suits = 'spades diamonds clubs hears'.split()

	def __init__(self):
		self._cards = [Card(rank, suit) for suit in self.suits
						for rank in self.ranks]

	def __len__(self):
		return len(self._cards)

	def __get__item(self, position):
		return self._cards[position]

Implementing python data model it is possible above is possible to use it in the iteration for or [[aw9b-python-list]]. Avoid [[82os-python-tuples]] for mutable objects.

References

Ramanlho, 2022, Chapter 1