getting special from type, not instance (was Re:
[Python-Dev] copy confusion)
Phillip J. Eby
pje at telecommunity.com
Thu Jan 13 15:41:31 CET 2005
At 10:16 AM 1/13/05 +0000, Armin Rigo wrote:
>On the other hand, I fear that if there is a standard "metamethod" decorator
>(named after Phillip's one), it will be misused. Reading the documentation
>will probably leave most programmers with the feeling "it's something magical
>to put on methods with __ in their names",
Possible solution: have it break when it's used in a non-subtype of
'type'. That is to say, when it's not used in a metaclass.
>Finally, I wonder if turning all methods whatsoever into data descriptors
>(ouch! don't hit!) would be justifiable by the feeling that it's often bad
>style and confusing to override a method in an instance (as opposed to
>defining a method in an instance when there is none on the class).
Hm. I look at this the opposite way: sometimes it's nice to provide a
default version of a callable that's supposed to be stuck on the object
later, just like it's nice to have a default initial value for a variable
supplied by the type. I don't think that doing away with this feature for
non-special methods is a step forwards.
>In all cases, I'm +1 on seeing built-in method objects (PyMethodDescr_Type)
>become data descriptors ("classy descriptors?" :-).
Heh. :)
More information about the Python-Dev
mailing list