2016-09-27 6 views
0

J'ai lu à propos de cette variable de pixels dans une classe en ligne et elle n'utilise pas self avant elle. Ai-je besoin de m'utiliser? Est-ce que cela en fait une variable globale parmi toutes les fonctions d'une classe? Est-ce que le moi le rend seulement disponible dans cette fonction? Merci d'avance.Pygame Que se passe-t-il si je n'utilise pas self avant une variable dans une classe?

Oh, et voici le code:

def moveRight(self, pixels): 
    self.rect.x += pixels 

Voir? La variable pixels n'utilise pas self avant.

+0

'self' est une référence à une instance de la classe définie. 'pixels' est juste un paramètre. Il peut ou peut ne pas être un objet d'une autre classe. – alvits

Répondre

1

rect est membre d'une classe sans doute, et suivant l'idée Python « explicite est mieux que implicite », rect est accessible en utilisant self il est donc clair que c'est un membre de la classe.

pixels est cependant juste un paramètre de la fonction. self.pixels impliquerait que la classe moveRight il est en a un membre pixels, qui ne semble pas être le cas puisque pixels est transmis dans.

self est une référence à l'objet que vous êtes actuellement « à l'intérieur ». self.someVariable n'a de sens que si someVariable est membre de la classe.