web-dev-qa-db-ja.com

Pythonでクラスを拡張するには?

pythonでは、クラスをどのように拡張できますか?たとえば、私が持っている場合

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!"

しかし、これは機能しません... color_extended.pyで作業している場合、カラーオブジェクトを作成してgetcolor関数を使用すると、文字列「拡張」を含むオブジェクトが返されることを期待しています。 」最終的には。また、インポートからinitを取得する必要があります。

python 3.1を想定

ありがとう

73
omega

つかいます:

import color

class Color(color.Color):
    ...

これがPython 2.xの場合、objectからcolor.Colorを派生させて、 新しいスタイルのクラス にすることもできます。

class Color(object):
    ...

これはPython 3.xでは必要ありません。

77
NPE