3

重複の可能性:
str または int からの継承

皆さん、こんにちは。

int クラスをサブクラス化しようとしていますが、成功していません。これが私の試みです:

class SpecialInt(int):
    def __init__(self, x, base=10, important_text=''):
        int.__init__(self, x, base)
        self.important_text=important_text

私が次のことを実行した場合:

integer = SpecialInt(123, 10, 'rage of the unicorns')

次のエラーが表示されます。

TypeRror: int() takes at most 2 arguments (3 given)

何か案は?:)

4

1 に答える 1

6

参照__new__:

__new__() は主に、不変型 (int、str、または tuple など) のサブクラスがインスタンスの作成をカスタマイズできるようにすることを目的としています。また、クラスの作成をカスタマイズするために、カスタム メタクラスでオーバーライドされることもよくあります。

于 2011-04-17T14:04:18.997 に答える