Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
Closed
Description
This applies to both instances and classes.
If an object and it's class both have attributes with the same name, this prevents specialization of access to the object's attribute.
However, in this case specialization should only be prevented if the class's attribute is a data descriptor.
Example 1, instance:
classC:x=1def__init__(self):self.x=2C().x
C().x
above is2
. It doesn't matter thatC.x
exists, provided it isn't a data descriptor.
This failure shows up as "shadowed" in thestats
Example 2, class:
classMeta(type):x=1classC(metaclass=Meta):x=1C.x
C.x
is2
.Meta.x
doesn't change that, as it isn't a data descriptor.
This failure shows up as "metaclass attribute" in thestats