Deciding the data structure

Sticking to the model first philosophy, let's spend some time on deciding the appropriate data structure or model for the program.

The data structure of the audio player is fairly simple. All that we expect of the model is to keep a track of playlists. The main data then is a list called play_list, and the Model class is then simply responsible for the addition and removal of items to and from the playlist.

Accordingly we came up with the following Model class for the program (see code 5.02model.py):

class Model:
def __init__(self):
self.__play_list = []

@property
def play_list(self):
return self.__play_list

def get_file_to_play(self, file_index):
return self.__play_list[file_index]

def clear_play_list(self):
self.__play_list.clear()

def add_to_play_list(self, file_name):
self.__play_list.append(file_name)

def remove_item_from_play_list_at_index(self, index):
del self.__play_list[index]

Nothing fancy in the preceding code. The object simply consists of a Python list with various utility methods that can be used to add and remove items from the list.

The play_list method has been declared as a property so that we need not write the getter method for the playlist. This is definitely more Pythonic because a statement such as play_list = self.play_list is more readable than play_list = self.get_play_list().

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.176.166