
Untitled
By: a guest on
Mar 16th, 2012 | syntax:
None | size: 0.98 KB | hits: 18 | expires: Never
class Book(object):
"""Book class to represent a book in the library."""
known_fields = ['title', 'authors', 'pages' ... ]
def __init__(self, **kwargs):
# internal dict to store book information
self._info = {}
for k, v in kwargs.iteritems():
# check for typos
Book.check_field_name(k)
self._info[k] = v
# either the title or ISBN needs to be provided to identify the book
if not self.title and not self.ISBN:
raise InputError('Title or ISBN needed to identify the book')
self.owned = True if self.file_path != None else False
self.tags = set()
def __getattr__(self, name):
return self._info.get(name, None)
@staticmethod
def check_field_name(field_name):
if not field_name in Book.known_fields:
warnings.warn('Unknown field: {0}'.format(field_name), UserWarning)