Le Mon, 26 Jan 2009 14:58:43 +0100,
Timo <timomli...@gmail.com> a écrit :

> Hello,
> 
> I'm writing an application that stores people with some info. I'm doing 
> this with ConfigParser and it works, but currently (for testing), there 
> are only 10 persons in it. What if I add, let's say, about 500-600 or 
> even more? Is this still a good choice?
> 
> So my entry's look like this (more or less ;)):
> [person1]
> firstName = foo
> lastName = bar
> father = person2
> mother = person3
> 
> 
> Now, I want to make a family tree out of this, something that looks like 
> the following scheme (hope the formating will be kept):
> 
> For person "foo bar", on his father-side, and mother-side the same.
> 
>                                  | father
>                  | father--<
>                  |               | mother
> person2--<
>                  |               | father
>                  | mother--<
>                                  | mother
> 
> Greets,
> Timo
> 

You may build a custom type with 2 attributes 'father' & 'mother', plus a name.
The list of objects of this type would be directly populated from your data 
file.
"Terminal" persons (the tree's leaves) could have a special value (e.g. None) 
for their parent attributes, or you could add a special 'leaf' logical 
attribute to identify them.
This type can also implement a proper output using __str__ or __repr__

Not tested:

class Person(object):
        def __init__(self, name, father=None, mother=None):
                self.name = name
                self,father,self.mother = father,mother
                if mother and father:
                        self.is_leaf = True
                else:
                        self.is_leaf = False
        def __str__(self):
                if self.is_leaf:
                        return self.name
                return "\t\t%s\n%s %s" % 
(self.name,self.father.name,self.mother.name)

[As the "family" structure is recursive, you can also easily define a recursive 
"treeView" method that recursively calls parent's own treeView.]

Denis

------
la vida e estranya
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to