detmining name during an assignment

Christian Heimes lists at cheimes.de
Fri Sep 18 13:38:08 EDT 2009


Jamie Riotto schrieb:
> I have an app that uses Python scripting. When a user creates a new object:
>> objName = newObject()
>> I'd like the newObject be able to use objName as its internal name.
> So, if a user says:
>> cube1 = Cube()
>> A "cube1" object should apear in the scene list. I believe this means I need
> to determine that a namespace assignment is going on from inside the
> object's init code
> or by using properties.

As the others already explained to you there is no way to archive your
goal with an assignment to a local or global variable. But you can
follow a different approach:
class Scene(object):
 def __setattr__(self, name, value):
 super(Scene, self).__setattr__(name value)
 if isinstance(value, SceneObject):
 value.name = name
 value.scene = self
class SceneObject(object):
 pass
class Cube(SceneObject):
 pass
scene = Scene()
scene.cube1 = Cube()
Have fun!
Christian


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /