Dear Python developer community,
I'm quite new to Python, so perhaps my question is well known and the
answer too.

I need a variable alias ( what in other languages you would call  "a
pointer" (c) or "a reference" (perl))
I read some older mail articles and I found that the offcial position
about that was that variable referencing wasn't implemented because
it's considered bad style.
There was also a suggestion to write a real problem where referencing
is really needed.
I have one...:

I'm trying to  generate dynamically class methods which works on
predefined sets of object attributes.
one of these is the set of attributes identfying uniquely the object
(primary key).
A naïve attempt to do the job:

class ObjectClass:
        """ Test primary Key assignment """

if __name__ == "__main__":

        ObjectClassInstantiated=ObjectClass()
        ObjectClassInstantiated.AnAttribute='First PK Elem'
        ObjectClassInstantiated.AnotherOne='Second PK Elem'
        ObjectClassInstantiated.Identifier=[]
        
ObjectClassInstantiated.Identifier.append(ObjectClassInstantiated.AnAttribute)
        
ObjectClassInstantiated.Identifier.append(ObjectClassInstantiated.AnotherOne)
        print ObjectClassInstantiated.Identifier
        ObjectClassInstantiated.AnAttribute='First PK Elem Changed'
        print ObjectClassInstantiated.Identifier

leads a wrong result
>./test.py
['First PK Elem', 'Second PK Elem']
['First PK Elem', 'Second PK Elem']
--> wrong! It should write  ['First PK Elem Changed', 'Second PK Elem']


i.e. the assgnment

ObjectClassInstantiated.Identifier.append(ObjectClassInstantiated.AnAttribute)

assigns only the attribute value, not the reference.

so my question is:
is it still true that there is no possibilty to get directly object
references?
Is there a solution for the problem above ?
Thank you for any feedback and sorry for the long mail
...and the reference to perl :-)

Regs, 
Davide

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to