python classes

William D. Gill wmgill at gcgroup.net
Thu Mar 4 20:42:07 CET 2004


"Peter Otten" <__peter__ at web.de> wrote in message
news:c27t0v$fhn$05$1 at news.t-online.com...
> William D. Gill wrote:
>
<<<<<------SNIP----->>>>>
> > class MyClass:
> >     def __init__(self, id=0000):
> >         self.data = MyOtherClass(id)    # data is an object with name,
id
> > and other properties
>
> I think this is an extra complication that gains you nothing. The only
> exception would be that data would not be initialized in
MyClass.__init__()
> but lazily at some later point, a usefull pattern if for a significant
part
> of the MyClass instances you can get away with not initializing data at
> all. You would then change MyClass as follows:
>
My thinking was to create a class for each table that contains pieces of the
whole customer information , and wrap OOPS! I mean include :)  those classes
in the overall customer class object.  That way by supplying id, all the
different constructors would go get the right data.

At my level (pre-novice) it's probably better to use one customer class and
sequential programming in the constructor:

select * from table A where id=1234
self.company_name = A.name
...

select * from table B where id=1234
self.mailto=B.mailto
self.billto = B.billto
...
select * from table C where id=1234
self.cell=C.cell
self.list=C.list
...
(using multiple selects because they may produce different size record sets)


<<<<<------SNIP----->>>>>
> I suppose that was a mutual misunderstanding. Did you mean this by
> "wrapping"?
>
> try:
>     customer = Customer.fromId(1234)
> except InvalidCustomer, e:
>     print e
Yes


Thanks,
Bill





More information about the Python-list mailing list