2009-05-08 5 views
31

Si j'ai une classe python, comment puis-je alias ce nom de classe dans un autre nom de classe et conserver toutes ses méthodes, ses membres de classe et ses membres d'instance? Est-ce possible sans utiliser l'héritage?Comment alias-tu une classe python pour avoir un autre nom sans utiliser l'héritage?

par exemple. J'ai une classe comme:

class MyReallyBigClassNameWhichIHateToType: 
    def __init__(self): 
     <blah> 
    [...] 

Je crée une session de console interactive où je ne veux pas les doigts de mes utilisateurs à tomber lors de l'instanciation de la classe dans les sessions interactives, donc je veux alias vraiment nom de classe longue à quelque chose minuscule comme «C». Existe-t-il un moyen facile de le faire sans héritage?

Répondre

60
C = MyReallyBigClassNameWhichIHateToType 
+4

Fonctionne bien, mais conduit à la confusion sur le long terme. Si vous détestez le taper, pourquoi ne pas simplement fixer le nom une fois pour toutes? –

+1

J'exagérais. Le nom d'origine est de 7 caractères, mais je veux vraiment que le nom interactif soit long d'un caractère. –

9

Refactorisez le nom, sans raison, il devrait avoir un nom aussi long.

Sinon, whateverName = VeryLongClassName devrait faire l'affaire.

+0

Le nom est pas long, mais je veux que ce soit exactement 1 caractère quand j'utilise la classe dans l'interface interactive session. –

+1

la première réponse, pas de upvotes, même que la réponse acceptée qui a 24 upvotes ... à +1 juste b/c –

11

Vous pouvez simplement faire:

ShortName = MyReallyBigClassNameWhichIHateToType 

Une classe en Python est juste un objet comme un autre, et peut avoir plus d'un nom.

29

En outre, si vous importez le nom d'un autre module ...

from modulename import ReallyLongNameWhichIHateToType as FriendlyName 
+3

Beaucoup plus propre que l'affectation, je pense. – fatuhoku

Questions connexes