A common pattern is class methods as constructors:
class MyThing(object):
@classmethod
def from_db(cls, row):
obj = cls()
... # initialize attributes from database row
return obj
@classmethod
def from_json(cls, data):
obj = cls()
... # initialize attributes from json data
return obj
def __init__(self):
pass
On Thu, Oct 9, 2014 at 5:41 PM, Taylor Gronka <[email protected]> wrote:
> I have an Event class that creates an object when "events" are pulled from
> the database. It also creates event objects from user input - the user can
> then commit() these events to the database.
>
> So, event objects are created from two different sources (actually more,
> but, for simplicity..): from 1) user input coming from javascript, and 2)
> from a database lookup.
>
> I want to run different initialization code depending on which source the
> data is coming from - such as, I want to error-check user input, but I
> don't need to error-check database lookups. What are some python/pyramid
> best practices? Is there a term for this? I think inheritance would
> create too many subclasses and wonky coding. "Overloading" doesn't seem
> like the right term for it.
>
> Right now, I am passing a {'source': 'none'/'html'/'database'/'etc'}
> parameter to the Event.__init__(). I then use if statements to go from
> there. It works and it's easy to add a new 'source', but it seems sloppy.
>
> Thanks for any help.
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/pylons-discuss.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pylons-discuss.
For more options, visit https://groups.google.com/d/optout.