0
votes

Définition des attributs d'une classe à l'aide de la compréhension de la liste donne attributError

Je veux définir une classe qui calculille la zone du cercle et comptez également le nombre de cercles xxx

mais je ne reçois pas la sortie souhaitée.

Code utilisé: xxx

donne l'erreur suivante: xxx


2 commentaires

Vous devez documenter ce que vous avez essayé, où il échoue et quelle est votre production actuellement.


J'ai pris une liberté d'ajouter une sortie produite par votre code et de changer le titre en conséquence. Si vous n'êtes pas d'accord avec mon édition, n'hésitez pas à l'inverser.


4 Réponses :


0
votes
  def area(self):
    return [3.14*self.radius**2 for i in self.radius]
    #return 3.14 * self.radius **2

0 commentaires

0
votes

Votre classe devrait ressembler à ceci:

class Circle:
    def __init__(self,radius):
        self.radius = radius

    def area(self):
        return [3.14 * r**2 for r in self.radius]


0 commentaires

1
votes

Je pense que vous pourriez être mal compris lorsque vous utiliseriez une classe. Pensez à une classe comme modèle pour un objet. Lorsque vous appelez cercle (...) code>, vous créez une instance em> de cet objet, et il est parfaitement acceptable d'avoir plusieurs instances d'une classe.

dans votre Exemple, envisagez de faire trois cercles pour chacune de vos trois entrées (ou si de nombreuses entrées), alors cela simplifie votre classe car vous n'avez pas besoin de listes. P>

inputradiusstr="1,2,3"
list_radius=inputradiusstr.split(',')
for radius in list_radius:
    c = Circle(int(radius))
    print(c.area())


1 commentaires

Je pense que cela vaut la peine de noter que si une classe a deux méthodes, et l'une d'entre elles est __ init __ alors Ce ne devrait pas être une classe .



0
votes

Typecastage fonctionnera dans votre cas. xxx

et votre classe a une incompatibilité d'indentation. Je pense que c'est juste en tapitant la question.


0 commentaires