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