0
votes

Ouvrir une dépassement avec la propriété: TypeError: l'objet 'int' n'est pas appelable

Je reçois l'erreur suivante: xxx

et voici le code: xxx

J'ai vu ce post méthodeClass Méthode TypeError" Int objet non appelable " mais cela n'a pas aidé à moi


3 commentaires

La raison est super (). Niveau n'est pas une fonction.


Remarque, il y a une question ouverte concernant super et Propriété / des Setteurs de descripteur: bugs.python.org/issue14965


DustyPosa, mais cela devrait être une fonction. J'ai écrit la même chose dans une autre classe et ça marche bien. Quelles lignes de code dois-je changer?


3 Réponses :


1
votes

1 commentaires

Merci je vois maintenant quelle est la cause du problème



0
votes

Le meilleur que j'ai monté est-ce:

  1. S'il n'y a pas besoin de remplacer le getter, vous pouvez préfixe par nom de classe parent
  2. aucun code dans Setter : Setteurs n'appelle que d'autres méthodes

    2.a méthodes d'instance définie qui font les instructions de réglage

    2.b qui sont appelés par les setters XXX


0 commentaires

0
votes

Une autre réponse semble être la meilleure:

class B(A):
    @A.level.setter
    def level(self, new_level):
        super(B, type(self)).level.fset(self, new_level)


0 commentaires