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:未定义全局名称“矩阵”

当然矩阵不是全局类。我不知道如何解决这个问题。

4

1 回答 1

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

或者

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