2010-08-02 7 views
0

J'ai ce problème étrange de savoir comment nommer les objets d'une classe.Pratique de nommage pour les objets d'une classe en Python

Par exemple, considérons la classe:

>>> class DoSomething: 
     pass 

Que dois-je appeler l'objet de cette classe? do_something ou quoi? Depuis que je suis sorti de l'apprentissage, j'avais l'habitude d'utiliser x, y ou z ou tout ce qui me venait à l'esprit. Mais maintenant que j'apprends à écrire le bon code et pas la langue, je suis toujours confronté à ce problème. Aucune suggestion?

+1

Je pense que "DoSomething" ressemble plus à un nom de méthode (quoique mauvais) qu'à un nom de classe. –

+0

Les classes représentent généralement des "noms" (c'est-à-dire ce qu'ils sont *) tandis que les "verbes" descriptifs sont généralement utilisés pour nommer des fonctions ou des méthodes (c'est-à-dire ce qu'ils * font *). – Santa

Répondre

4

Nommez-le quelque chose de représentatif de ce qu'il est réellement utilisé. Par exemple:

class Cereal: 
    def eat(self): 
     print 'yum' 

breakfast = Cereal() 
breakfast.eat() 

ou

class User: 
    def __init__(self, userid): 
     # ... 

admin_user = User(ADMIN_ID) 
+1

Aah je vois. Cette approche est également utile. – user225312

2

Vous devriez le nommer après ce qu'elle représente. Par exemple, si j'ai une classe User dans une application Web et que je veux faire référence à l'utilisateur actuellement connecté, je nomme la variable current_user.

Et si vous avez plus d'objets d'une classe, votre approche échoue immédiatement. Donner à la variable un index comme do_something1, do_something2n'est pas et ne sera jamais une option.

Utilisez quelque chose signifiant, afin qu'un lecteur de votre code sache ce que cette variable représente.


Btw. ceci s'applique à tous les langages de programmation, pas seulement Python.

+0

Je vois. Merci pour l'information. – user225312

0

Une bonne pratique de dénomination consiste à donner plusieurs noms à des collections telles que des ensembles et des listes.

Questions connexes