[Tutor] Creating an Identifier or Object Name from a String?
Gregor Lingl
glingl@aon.at
Tue, 11 Jun 2002 10:35:47 +0200
I Tried it and it worked (?!)
Python 2.2c1 (#27, Dec 14 2001, 13:15:16) [MSC 32 bit (Intel)] on win32
Type "copyright", "credits" or "license" for more information.
IDLE 0.8 -- press F1 for help
>>> class K:
pass
>>> field1 = K()
>>> field2 = K()
>>> field3 = K()
>>> for ct in range(1,4):
obj="field"+str(ct)
objTC=eval(obj)
objTC.text=['a','b',str(ct)]
>>> field1.text
['a', 'b', '1']
>>> field2.text
['a', 'b', '2']
>>> field3.text
['a', 'b', '3']
>>>
Gregor
Dan Shafer schrieb:
> I have a need to refer to a number of objects which have been named field1,
> field2, field3, etc. I want to set a property in each object in a loop.
>
> I thought this should work:
>
> for ct in range(1,4):
> objToUpdate = "field" + str(ct)
> objToChange = eval(objToUpdate) # seems like it should produce
> "field1" first time through the loop, etc.
> objToChange.text = inputList[ct] #inputList is generated prior to
> entering the loop and is a list of string values
>
> This produces an error indicating that string objects don't have a text
> attribute. So clearly objToChange is still a string at this point.
>
> I suspect this is tricky but if someone could help....
>
> Dan Shafer, Chief Scribe and Tablet Keeper
> PythonCard Open Source Project
> http://pythoncard.sourceforge.net
>
> _______________________________________________
> Tutor maillist - Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor