Question : Appeler une méthode de python d'une classe

J'ai essayé de lire les Doc.s de python sur des classes, les objets et les modèles de données mais moi ne l'obtenons toujours pas - je suppose que les programmeurs avancés doivent écrire les classes mais pour ce que je peux faire, l'inscription d'une classe semble rendre des choses plus difficiles qu'elles ont besoin de be.

I AM essayant d'écrire un programme qui exige de moi de créer un exemple d'une classe de « chien » avec le nom du chien et de multiplier comme arguments, et apposent l'objet à la liste de chiens. Pour chaque entrée d'utilisateur sur le nom et la race, la liste courante de chiens devrait imprimer le nom et la race de chaque chien, exemple :
#DOGS
0. Snoopy : Beagle
1. Marmaduke : Grand Dane
2. Rover : Mutt

I ne peut pas figurer dehors comment appeler la fonction ainsi je ne suis pas sûr si le problème est avec la manière que j'essaye d'appeler la fonction ou la manière dont j'ai écrit aux méthodes dans la classe. Certains des conseils étaient assez spécifiques, par exemple la méthode d'init () devrait prendre deux paramètres, nom et race, en plus de l'individu implicite.  le

I ont copié les erreurs ci-dessous avec le code offensant, et je ne comprends pas les erreurs (si je faisais, je suppose que je pourrais fixer ceci).
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
chien " de " codeSnippet947645 d'id= " de
class de class= :

    __init de def (individu, nom, race) :
        self.name = « nom de chien »
        self.breed = « race de chien »
        self.dog_list = []

    # parce que des « chiens » dans l'add_dog (** des chiens) se sont avérés être éliminés,  
    # pas sure pourquoi…
    keywords_as_dict de def (** chiens) :
        chiens de retour
       
    add_dog de def (** chiens) :
	tandis que vrai :
            essai :
                nom = raw_input (« écrire le nom de chien : ")
                race = raw_input (« présenter la race de chien : ")

    		pour le nom, race dans dogs.items () :
            	    my_dog = (name.capitalize () + « :  » + breed.capitalize ())
                    copie (my_dog)
                    dog_list.append (my_dog)
	    
	    excepté le == nommé '' :
                copie (« sortant le programme ")

        chiens de retour, dog_list
                           
si == « __main » de __name :
    zéro = chien (breed='Retriever') de name='Lassie', # ou 
    un = chien (« gamine », « chien d'arrêt ")
    copie (zéro, une) 
    # exemple des impression <__main__.Dog à un certain code> hex pour chacun
    Dog.add_dog (un) # type erreur, méthode prend les args 0 
    Dog.add_dog () # ou
    Dog.add_dog (« Goofy », « chien ") # ou 
    Dog.add_dog (breed='mutt') de name='Goofy', # type erreurs,
    # a défait des méthodes doit s'appeler avec l'exemple de classe en tant que d'abord argument
class= de

Réponse : Appeler une méthode de python d'une classe

La ligne 8 ne crée pas un « chien »

au lieu de :

my_dog = (name.capitalize () + « :  » + breed.capitalize ())

Vous avez besoin de quelque chose comme :

my_dog = chien (name.capitalize (), breed.capitalize ()) ;

Que diriez-vous de quelque chose aimer :
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
chien de classe () :
  __init de def (individu, nom, race) :
    self.name = nom ;
    self.breed = race ;
  getName de def (individu) :
    self.name de retour ;
  def getBreed (individu) :
    self.breed de retour ;

si == « __main » de __name :
  chenil = [] ;             # créer une liste vide de chiens
  tandis que vrai :
    nom = raw_input (« nom : ").strip () ;
    si nom :
      race = raw_input (« race : ").strip () ;
      si race :
        kennel.append (chien (name.capitalize (), breed.capitalize ())) ;
    autrement :
      coupure ;
  copie « \ nDogs : \ n » + (« - » * 40) ;
  pour I dans la gamme (len (chenil)) :
    chien = chenil [I] ;
    copie « %d. %s : %s » % (I, dog.getName (), dog.getBreed ()) ;

autrement :
  erreur d'impression « - exécuter ce manuscrit, ne l'importent pas. \ n » ;
  copie % de __name du « python %s.py » ;
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us