Hello to all, hello Gingerbread Man.
First I want to say that I have been with you and this thread when I first discovered it a short time after it has been announced that cIV would offer Python scripting. I read (almost) everything. Very good work! I'm happy to see this interested community and I value your great work and your time spent here

.
I acually bought a book the instance I heard about it

. I came in contact with Python the first time through "Blender" a freeware-"open source"-abandoned-type 3D modeler. But I didn't do any scripting back then.
I have gathered some knowlegde in (almost chronoligical order

) Basic, Pascal/Turbo Pascal, HTML, C, C++, Java, C#, XML, PHP and Python (actually still working on that ... hm, more actually on ALL of them

except the very old ones). No really great projects so far, but I am programming since I was 10 (or so) ... and as you can see: coming around a lot

.
I'd like to a tiny piece of information to your post on classes. I became very confused when I got in contact with classes in C++ but this explanation helped me a lot to understand what they really do (this is not intended to correcting you but to make classes a little more transparent to the community):
Think of classes as your BLUEPRINTS for later manufactured objects! In your class definition you describe how you would build i. e. a car ... but since then there is no real car, right(only the pice of paper with your blueprint on it)? So you have to build a car according to this BP. This is done by making an instance of it.
In Python: myCar = blueprint_of_a_car()
Now the little "data elves" in your computer actually build a car named "myCar". Now you would be able to drive that car or accellerate it and so an (ever drove a blueprint

!?).
This brings us to inheritance and polymorphism.
If you would like to build a new car with special tires, seats or a different motor you wouldn't design a whole new car, now would you? Instead you would just change your motor or your tires and leave the rest as it is.
This is done by creating a new class (or blueprint) which inherits all the attributes and methods from your original car class (copy all information of your original blueprint to another) and then overrides the information i. e. of the type of motor what should be in the car (erase the data of your motor on your copied blueprint and specify another one).
I am working right now on an civ related interface mod. Remember that you had to explicitly change single leaderheads in your civ3 foreign advisor screen if too many civs were in the game!? I'm working on a demo solution for that problem in Python where the leaderheads will organize themselves on a circle and scale down when necessary.
I want to try that using Tkinter objects, canvas, simple shapes (not even real images to scale ... keeping it as simple as possible). After all they said the INTERFACE would be modable.
So I WILL come back (for support

) and I am also planing on posting the solution here on cfc.
(See second part)