2016-08-23 3 views
2

Ist es möglich, eine namedtuple zu erzeugen, die von einer Basisklasse erbt?Vererbung namedtuple aus einer Basisklasse in Python

Was ich will, ist, dass Circle und Rectangle sind namedtuple s und von einer gemeinsamen Basisklasse geerbt (‚Shape‘):

from collections import namedtuple 

class Shape: 
    def addToScene(self, scene): 
     ... 

Circle=namedtuple('Circle', 'x y radius') 
Rectangle=namedtuple('Rectangle', 'x1 y1 x2 y2') 

Wie würde ich das tun?

Antwort

2

Sie können dies versuchen:

class Circle(Shape, namedtuple('Circle', 'x y radius')): 

    pass 

(Sie berücksichtigen sollten __slots__ auf alle Ihre drei Klassen Hinzufügen von Speicher zu speichern und für sightly schnellere Lookups.)

Verwandte Themen