Looking for a good introduction to object oriented programming with Python
lipska the kat
lipskathekat at yahoo.co.uk
Wed Aug 8 15:31:57 EDT 2012
On 08/08/12 17:42, Dennis Lee Bieber wrote:
> On Wed, 08 Aug 2012 10:51:45 +0100, lipska the kat
> <lipskathekat at yahoo.co.uk> declaimed the following in
> gmane.comp.python.general:
>
>>
>> The point I'm obviously struggling to make is that words convey concepts
>> The word Person conveys a whole lifetime of experience of People and as
>> imperfect human beings many of us are unable to tease out 'bits of being
>> a person' that are relevant to the system we are developing. Inevitably
>> other seemingly irreversibly entwined bits keep popping up to cloud our
>> thinking. This is my experience, not an isolated case but one that has
>> popped up again and again.
>>
> You've never considered writing a genealogy program, have you? One
> that never acknowledges "Person"?
>
Before I start let me say that this thread really has been the most
enormous fun and I can take any amount of ridicule so don't hold back.
Normally when I have a bath I think of the best way to stop the mice
from feasting on my herb patch without killing them. This evening I lay
there thinking about this outwardly tricky problem when I realised that
what we have here, at it's most basic, is a Tree.
I am not a genealogy expert, the nearest I've been to a family tree is
the ones my old mum thrusts under my nose at Christmas, Sunday lunch,
birthdays,funerals etc etc . They are increasing large, beautifully hand
drawn and most definitely a Tree
So here is my off the cuff, in the bath design for a genealogy system
A Tree consists of Node(s) and Leaf(s), relationships are modelled by
following the Line(s) in the Tree diagram and that is it. Line may be a
class as in 'the patriarchal line' I'm not sure, it would come out in
the iterative wash.
We can infer whatever we want from this simple model. A Leaf is a child,
until it becomes a parent when it becomes a Node. To anthropomorphize a
bit more (I love that word) and introduce non species specific words and
concepts, a Node can be a father or mother (simple to implement by
virtue of an enumeration e.g enum Gender{MALE, FEMALE, HERMAPHRODITE,
NON_GENDER_SPECIFIC_CHIMERA, ...}) A male sibling of a parent is an
uncle, a female an aunt and a cousin is ...I have no idea but hopefully
you can see where I'm going with this. Furthermore our system can work
for Horses and Dogs and Zoomorphs and Epiphytes, Parasites and
Zygomorphs and Fungi and Parrots and anything else you can possibly
think of ...
But what of all the ephemeral data that goes with a sentient existance
on this planet such as birth certificates, newspaper articles,
christenings, death certificates, photographs etc etc, what about
pegigree certificates, innoculation records and any other trivia,
information and flotsam that goes with a pedigree Dog or Horse or indeed
Parrot.
Well you don't need me to answer this one do you, we could have a class
called Ephemera ... but then I prefer the Just In Time concept to
loading data, I'd store the gubbins in a 'database' (don't get me
started on databases) or I may decide to pickle the data out to disk and
pull it out when someone requests it and probably charge them a small
fortune for the privilige of looking at their own families historical
information.
And not a 'Person' in sight
Of course you may be a genealogy expert and just waiting to shoot me
down in flames, go ahead, I'll have a good smile about it next time I'm
in the bath.
lipska
--
Lipska the Kat: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun
More information about the Python-list
mailing list