Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > is extending an object considered acceptable usage?

Reply
Thread Tools

is extending an object considered acceptable usage?

 
 
mike
Guest
Posts: n/a
 
      01-25-2005

i have an Item which belongs to a Category, so Item has:

- item.categoryId, the database primary key of its Category

- item.category, a reference to its Category. this null unless i need a
reference from item to its Category object, in which case i call
setCategory(category)

sometimes i want a list of categories, and from each i want to be able
to access a list of its items. in this case is it considered acceptable
to just create a list of those items and assign it as a property of
their category? eg:

category.items = listOfItems

this packages everything up into a hierarchy and is more convenient to
use, especially in Cheetah templates, but requries modifying the
structure of the object, which bothers me (probably for some
subconscious java-related reason).

the alternative might be to create a dictionary that keys the lists of
items on their category:

items = {}
items[category.id] = listOfItems

this feels less "controversial" to me, but requires extra objects and
house-keeping.


thanks - just curious if there were arguments one way or the other.
 
Reply With Quote
 
 
 
 
Terry Reedy
Guest
Posts: n/a
 
      01-25-2005

"mike" <(E-Mail Removed)> wrote in message
news:qijJd.14679$(E-Mail Removed)...
> sometimes i want a list of categories, and from each i want to be able to
> access a list of its items. in this case is it considered acceptable to
> just create a list of those items and assign it as a property of their
> category? eg:


To me, Python is about being what it is, and not any other language. It is
about writing correct readable algorithms. It is about enjoying
programming. It is about programmers being responsible for their own code.

I hope you find this more helpful than any yes or no could be.

Terry J. Reedy



 
Reply With Quote
 
 
 
 
Larry Bates
Guest
Posts: n/a
 
      01-28-2005
When I want to do what I think you are asking, I create
an iterator in that returns a category item each time
the .next method is called. That way you can write.

ITEM=item(<args>)
..
..
..
for CATEGORY in ITEM:
<do anything>


in my item class:

class item:
def __init__(self, <other args>):
self.CATEGORIES=[]
self.next_index=0 # Index point for next method

def __iter__(self):
return self

def next(self):
#
# Try to get the next route
#
try: CATEGORY=self.CATEGORIES[self.next_index]
except:
self.next_index=0
raise StopIteration
#
# Increment the index pointer for the next call
#
self.next_index+=1
return CATEGORY

I had one project where these were nested 5-6 deep
and the resultant code reads beautifully.

Larry Bates


mike wrote:
>
> i have an Item which belongs to a Category, so Item has:
>
> - item.categoryId, the database primary key of its Category
>
> - item.category, a reference to its Category. this null unless i need a
> reference from item to its Category object, in which case i call
> setCategory(category)
>
> sometimes i want a list of categories, and from each i want to be able
> to access a list of its items. in this case is it considered acceptable
> to just create a list of those items and assign it as a property of
> their category? eg:
>
> category.items = listOfItems
>
> this packages everything up into a hierarchy and is more convenient to
> use, especially in Cheetah templates, but requries modifying the
> structure of the object, which bothers me (probably for some
> subconscious java-related reason).
>
> the alternative might be to create a dictionary that keys the lists of
> items on their category:
>
> items = {}
> items[category.id] = listOfItems
>
> this feels less "controversial" to me, but requires extra objects and
> house-keeping.
>
>
> thanks - just curious if there were arguments one way or the other.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
extending object with another object Ittay Dror Ruby 4 10-22-2008 07:17 PM
Re: default object comparison considered harmful? Kay Schluehr Python 7 05-17-2008 12:15 AM
java.util.Properties extending from HashMap<Object, Object> insteadof HashMap<String, String> Rakesh Java 10 04-08-2008 04:22 AM
Acceptable Load on WAN Link ciscoham Cisco 3 10-20-2005 04:28 PM
Is this trick with reset acceptable? valentin tihomirov VHDL 6 04-14-2004 05:52 PM



Advertisments