D
DrConti
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
['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
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
['First PK Elem', 'Second PK Elem']./test.py
['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