web-dev-qa-db-fra.com

Comment étendre une classe en python?

Dans python comment pouvez-vous étendre une classe? Par exemple, si j'ai

color.py

class Color:
    def __init__(self, color):
        self.color = color
    def getcolor(self):
        return self.color

color_extended.py

import Color

class Color:
    def getcolor(self):
        return self.color + " extended!"

Mais ça ne marche pas ... Je pense que si je travaille dans color_extended.py, alors, lorsque je crée un objet couleur et que j'utilise la fonction getcolor, il renvoie l'objet avec la chaîne "extended!" à la fin. En outre, il aurait dû obtenir l'init de l'importation.

Supposer python 3.1

Merci

73
omega

Utilisation:

import color

class Color(color.Color):
    ...

Si cela était Python 2.x, vous voudriez aussi dériver color.Color de object, pour en faire une classe de style nouvea :

class Color(object):
    ...

Ce n'est pas nécessaire dans Python 3.x.

77
NPE