Я хочу создать экземпляр класса внутри себя. Я пытался ему таким образом:Как создать экземпляр класса внутри этого метода класса?
class matrix:
(...)
def det(self):
(...)
m = self(sz-1, sz-1)
(...)
(...)
, но я получил сообщение об ошибке:
m = self(sz-1, sz-1)
AttributeError: matrix instance has no
__call__
method
Итак, я попытался сделать это таким образом:
class matrix:
(...)
def det(self):
(...)
m = matrix(sz-1, sz-1)
(...)
(...)
и я получил другую ошибку :
m = matrix(sz-1, sz-1)
NameError: global name 'matrix' is not defined
Конечно, матрица не является глобальной cla песчаники Я не знаю, как решить эту проблему.
Последний пример работает для меня. – Javier
Поскольку у вас есть это прямо сейчас, «m» будет локальной переменной, а не переменной экземпляра, поэтому она исчезнет, когда метод det() вернется. Это может быть уместно для того, что вы делаете, но когда вы говорите, что хотите «экземпляр класса внутри себя», это звучит так, как будто вы хотите, чтобы m была переменной экземпляра, и в этом случае вам нужно ссылаться на нее как на «я». m " – MatrixFrog
Какую версию Python вы используете? – MatrixFrog