On 1/22/2010 2:29 PM, Martin Drautzburg wrote:
This has probably been asekd a million times, but if someone could give
a short answer anyways I's be most grateful.

What is it that allows one to write A.x? If I have a variable A,

You do not really have a 'variable'. You have a name A bound to an object that is an instance of class C = type(A).

what to I have to assign to it to A.x becomes valid?

If C has the appropriate special methods for get/set/del attribute, then you can get/set/del attributes for instances of C (such as A).
If not, you cannot.

In general, builtin classes, including object, allow get but not set/del on both the class and instances thereof.
Subclasses of object allow all three.

Or even further: what do I have to do so I can write A.x=1 without
having done anything magical for x (but just for A)?

Make A be a user-defined class or an instance thereof.

I know you can do this with classes, but not with plain objects, but why is 
that so?

You exact meaning here is not clear, but I suspect it is somewhat incorrect, at least for built-in classes.

Terry Jan Reedy


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

Reply via email to