Forum >> Principianti >> [Risolto] TypeError: area_ret() missing 2 required positional arguments

Pagina: 1

Ciao a tutti!
Stavo studiando la programmazione ad oggetti e ho trascritto fedelmente l'esempio di un codice proposto nel manuale. Però mi genera errore:

''TypeError: area_ret() missing 2 required positional arguments''




Mi aiutereste gentilmente a comprendere perché i valori random della lista non si legano al metodo del calcolo dell'area?




class Rettangolo:
    def __init__(self, base, altezza):
        self.base= base       
        self.altezza= altezza

    def area_ret(self, base, altezza):
        return self.base*self.altezza

    def perimetro_ret(self, base, altezza):
        return (self.base+self.altezza)*2

from random import randrange

myrect = [ Rettangolo(randrange(6), randrange(6)) for x in range (6) ]

for rect in myrect:
          print('Dati:', rect.base, rect.altezza)
          print(' Area:', rect.area_ret())            # da qui si genera l'errore
          print(' Perimetro', rect.perimetro_ret())




--- Ultima modifica di ANGOO in data 2021-04-28 00:44:55 ---
Ciao caro, semplicemente prova a trasformare la tua classe in:

class Rettangolo:
    def __init__(self, base, altezza):
        self.base = base       
        self.altezza = altezza

    def area_ret(self):
        return self.base*self.altezza

    def perimetro_ret(self):
        return (self.base+self.altezza)*2


A presto.
Funziona!! Grazie tante!! :)


Pagina: 1



Esegui il login per scrivere una risposta.