8

それ自体の中にクラスインスタンスを作成したい。私はこの方法でそれを試みました:

class matrix:
    (...)
    def det(self):
        (...)
        m = self(sz-1, sz-1)
        (...)
    (...)

しかし、私はエラーが発生しました:

m = self(sz-1, sz-1)

AttributeError: マトリックス インスタンスに__call__メソッドがありません

だから、私はこの方法でそれをやろうとしました:

class matrix:
    (...)
    def det(self):
        (...)
        m = matrix(sz-1, sz-1)
        (...)
    (...)

そして、別のエラーが発生しました:

m = matrix(sz-1, sz-1)

NameError: グローバル名 'matrix' が定義されていません

もちろん、行列はグローバル クラスではありません。この問題を解決する方法がわかりません。

4

1 に答える 1

14
m = self.__class__(sz-1, sz-1)

また

m = type(self)(sz-1, sz-1)
于 2010-01-06T18:43:52.760 に答える