RecursionError:调用Python对象时超出了最大递归深度

时间:2017-11-02 20:45:16

标签: python python-3.x inheritance method-overriding

我试图在python中覆盖受保护的方法,我得到了这个例外:

如果float(rMontant)> = float(self .__ decouvert_autorise): RecursionError:调用Python对象时超出了最大递归深度

这是我的代码:

class Compte(object):
    def __init__(self, numero, nom_titulaire, solde):
        self.__numero = numero
        self.__nomTitulaire = nom_titulaire
        self.__solde = solde

    def _retirer(self, rMontant):
        if self.__solde >= rMontant:
            self.__solde -= rMontant
            print("bien retirer")


class CompteCourant(Compte):
    def __init__(self, numero, nom_titulaire, solde):
        super().__init__(numero, nom_titulaire, solde)
        self.__decouvert_autorise = 0

    def setDecouvertAutorise(self, decouvert_autorise):
        self.__decouvert_autorise = decouvert_autorise

    def _retirer(self, rMontant):
        if float(rMontant) >= float(self.__decouvert_autorise):
            return "plus que le solde autorisé"
        else:
            self._retirer(rMontant)
            return "ok"


p = CompteCourant(1425, "azer", 8000)
p.setDecouvertAutorise(1000)
print(p._retirer(500))

0 个答案:

没有答案