Je veux créer une instance de classe à l'intérieur de lui-même. J'ai essayé de lui de cette façon:Comment créer une instance de classe dans cette méthode de classe?
class matrix:
(...)
def det(self):
(...)
m = self(sz-1, sz-1)
(...)
(...)
mais je suis erreur:
m = self(sz-1, sz-1)
AttributeError: matrix instance has no
__call__
method
Alors, j'ai essayé de le faire de cette façon:
class matrix:
(...)
def det(self):
(...)
m = matrix(sz-1, sz-1)
(...)
(...)
et je suis une autre erreur :
m = matrix(sz-1, sz-1)
NameError: global name 'matrix' is not defined
Bien sûr, la matrice n'est pas globale ss. Je n'ai aucune idée de comment résoudre ce problème.
Le dernier exemple fonctionne pour moi. – Javier
Comme vous l'avez maintenant, 'm' serait une variable locale, pas une variable d'instance, donc elle disparaîtra quand la méthode det() retournera. Cela peut être approprié pour ce que vous faites, mais quand vous dites que vous voulez une "instance de classe en elle-même", il semble que vous voulez que m soit une variable d'instance, auquel cas vous devez vous référer à "self". m " – MatrixFrog
Quelle version de Python utilisez-vous? – MatrixFrog