[Tutor] self (again)
John Aherne
johna at johnaherne.co.uk
Sun Aug 13 10:27:46 CEST 2006
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
More information about the Tutor
mailing list