如何在类方法中创建类实例?

10 投票
1 回答
11257 浏览
提问于 2025-04-15 17:42

我想在一个类里面创建它自己的实例。我试着这样做:

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' 未定义

当然,矩阵并不是一个全局类。我不知道该怎么解决这个问题。

1 个回答

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

或者

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

撰写回答