[Tutor] Multiples python files
Alan Gauld
alan.gauld at btinternet.com
Mon Feb 28 20:15:19 CET 2011
"Christopher Brookes" <chris.klaitos at gmail.com> wrote
>I don't understand
>
> @classmethod
> def DisplayAll(cls, herosAll):
>
> What is cls ?
This is one of the advanced techniques I referred to a few
days ago.
Basically the "best"(?) solution to your problem is to store the
list of characters inside the Character class as what is known
as a class variable.
Then everytime you create a new Character you can add it
to the list by the init method. And when a character is deleted
you remove it via the del method.
You can then define class methods to read/print the list,
find out how many characters exist etc.
This is much cleaner than keeping a separate global variable
since the code for managing characters is all in one place
with the classs definition. But it does introduce a bunch of
new syntax features which I didn't think you were ready for
yet! :-)
One thing you will need to be very careful about as you go
forward is namespaces. Remember that everytime you
import a module you need to precede any names in that
module with the module name. And names inside a class
need to be preceded by the class name. And names inside
objects need to be preceded by the object (variable) name.
If the class is inside a module you need to use both module
and class. Thus if the Character class is defined inside
character.py you would have something like this
in main.py:
import character
myObj = character.Character(....)
print myObj.display()
print character.Character.displayAll()
etc.
You can simplify it by using the "from m import v" style:
from character import Character
myObj = Character(....)
myObj.display()
Character.displayAll()
etc.
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list