This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author kam193
Recipients kam193
Date 2020-07-14.14:57:15
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
CPython 3.8.4 broke previously correct custom __setattr__ implementation, when metaclass inheritances from multiple classes, including not-meta.

Following code:

class Meta(type):
    def __setattr__(cls, key, value):
        type.__setattr__(cls, key, value)

class OtherClass:

class DefaultMeta(OtherClass, Meta):

obj = DefaultMeta('A', (object,), {})
obj.test = True

Works in Python up to 3.8.3, but in 3.8.4 it raises:

Traceback (most recent call last):
  File "", line 13, in <module>
    obj.test = True
  File "", line 3, in __setattr__
    type.__setattr__(cls, key, value)
TypeError: can't apply this __setattr__ to DefaultMeta object

This change affects e.g.
Date User Action Args
2020-07-14 14:57:16kam193setrecipients: + kam193
2020-07-14 14:57:16kam193setmessageid: <>
2020-07-14 14:57:16kam193linkissue41295 messages
2020-07-14 14:57:15kam193create