如何在类方法中创建类实例?
我想在一个类里面创建它自己的实例。我试着这样做:
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)