Quelle est la Pythonic façon d'initialiser, de définir et d'obtenir mon personnalisée attributs de l'objet, par son nom?

Je suis assez nouveau à Python et j'ai besoin de faire déclarer ma propre structure de données, je suis un peu confus sur la façon de faire cela. J'ai actuellement:

class Particle:

    def __init__(self, mass, position, velocity, force):

        self.mass = mass
        self.position, self.velocity, self.force = position, velocity, force

    def __getitem__(self, mass):
        return self.mass

    def __getitem__(self, position):
        return self.position

    def __getitem__(self, velocity):
        return self.velocity

    def __getitem__(self, force):
        return self.force

Ce qui ne fonctionne pas, cependant, lorsque j'essaie de définir une instance de la classe:

 p1 = Particle(mass, position, velocity, force)

Chaque valeur se termine juste en haut comme un (0.0, 0.0) (qui est la valeur pour la vitesse et la force).

Quelqu'un pourrait-il expliquer d'où je vais mal, je n'ai besoin de la structure de données est de pouvoir extraire les données en dehors de ça, rien d'autre. (edit: en fait, désolé, je vais devoir modifier un peu plus tard)

Grâce

cela fonctionne pour moi comme.
Tous vos __getitem__ définitions sont de la même méthode. Vous devez vérifier ce qui est fait en cours de récupération.
Il ne devrait pas.
Aparté: sur les dimensions de la cohérence des motifs, j'avais store accélération plutôt que la force.
Comment essayer d'accès? La façon dont vous l'a défini, p1[<anything>] retourne self.force. Je suis curieux de savoir comment vous imaginez pour accéder aux différents attributs...

OriginalL'auteur djcmm476 | 2013-03-07