Skip to content

Instantly share code, notes, and snippets.

@odra
Created November 21, 2015 23:32
Show Gist options
  • Save odra/7f3813d03e4392fabb45 to your computer and use it in GitHub Desktop.
Save odra/7f3813d03e4392fabb45 to your computer and use it in GitHub Desktop.
import json
class Model(object):
def __init__(self, *args, **kwargs):
if len(args) > 0 and isinstance(args[0], dict):
for item in args[0]:
setattr(self, item, args[0][item])
for item in kwargs:
setattr(self, item, kwargs[item])
@staticmethod
def from_json(raw):
data = json.loads(raw)
return Model.from_dict(data)
@staticmethod
def from_dict(data={}):
return Model(data)
def __setattr__(self, name, value):
if self.__dict__.get(name):
super(Model, self).__setattr__(name, value)
else:
self.__dict__[name] = value
def __getattr__(self, name):
return None
def __getattribute__(self, name):
return super(Model, self).__getattribute__(name)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment