I have been following the thread on self because for the past month I have been driven potty trying to be sure that I understand the ramifications of how self works.
I have tried to create some code that tries to prove how self, variables, assignment and namespace gel together. I can't convince myself that I have it right. I think it works as follows. I just need to know what is right. Class variables are 'global' for the class and all instances of the class. Using self makes the assignment 'local' to the instance. This is used to create variables that will retain the assigned value for the duration of the instance. This variable is 'global' for the instance. It can be accessed by all the functions in the class/instance without being passed as a parameter from function to function. Self is used if you want to create a class where you store data for a 'long' period of time. Not like local variables that only have duration for the execution of the function. Within the def functions inside the class, assignments inside the function are local. If the def function inside a class takes a set of parameters that are passed in from outside e.g. class one: def func1(parm1,parm2,parm3): These parameters are passed by reference. So they refer to values held elsewhere. If I use the names inside the function what problem will I give myself. Are they local, global. e.g. if parm1=='somevalue': How long can I trust the value in the passed parameter - parm1 What namespace are they in. I run all this under modpython on windows, where one python interpreter runs all the instances so I have multiple copies of the code running in the same interpreter. What is likely to happen to these values being passed by reference if several people log in at once and run the code. Hope I have explained myself so people can understand what I mean. Looking forward to the light of understanding. Regards John Aherne _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor