Message 414830 - Python tracker

Message414830

Author serhiy.storchaka
Recipients AlexWaygood, FHTMitchell, JelleZijlstra, Steven Silvester, dlukes, eric.smith, graingert, gvanrossum, juliusgeo, kj, levkivskyi, python-dev, rhettinger, serhiy.storchaka, sobolevn
Date 2022-03-10.08:17:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1646900262.03.0.469523926882.issue43923@roundup.psfhosted.org>
In-reply-to
Content
What about mix-ins or abstract base classes?

class VecMixin:
    def length(self):
        return math.hypot(*self)

class Vec2D(NamedTuple, VecMixin):
    x: float
    y: float

class Vec3D(NamedTuple, VecMixin):
    x: float
    y: float
    z: float

Currently you need to use the following trick to get a similar result:

class Vec2D(NamedTuple):
    x: float
    y: float

class Vec2D(Vec2D, VecMixin):
    pass
History
Date User Action Args
2022-03-10 08:17:42serhiy.storchakasetrecipients: + serhiy.storchaka, gvanrossum, rhettinger, eric.smith, python-dev, graingert, levkivskyi, dlukes, JelleZijlstra, FHTMitchell, Steven Silvester, sobolevn, kj, AlexWaygood, juliusgeo
2022-03-10 08:17:42serhiy.storchakasetmessageid: <1646900262.03.0.469523926882.issue43923@roundup.psfhosted.org>
2022-03-10 08:17:42serhiy.storchakalinkissue43923 messages
2022-03-10 08:17:41serhiy.storchakacreate