2009-05-08 7 views
31

Si tengo una clase de python, ¿cómo puedo alias ese nombre de clase en otro nombre de clase y conservar todos sus métodos y miembros de clase y miembros de instancia? ¿Es esto posible sin usar herencia?¿Cómo alias una clase de python para tener otro nombre sin usar herencia?

p. Ej. Tengo una clase como:

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

estoy creando una sesión de consola interactiva en la que no quiero dedos de mis usuarios que caen al crear la instancia de la clase en las sesiones interactivas, así que quiero alias que realmente nombre de clase larga a algo diminuto como 'C'. ¿Hay una manera fácil de hacer esto sin herencia?

Respuesta

60
C = MyReallyBigClassNameWhichIHateToType 
+4

Funciona bien, pero genera confusión a largo plazo. Si odias escribirlo, ¿por qué no arreglas el nombre una vez y para siempre? –

+1

Estaba exagerando. El nombre original tiene 7 caracteres, pero realmente quiero que el nombre interactivo tenga 1 carácter. –

9

Refactorizar el nombre, no hay razón por la que debería tener un nombre tan largo.

De lo contrario, whateverName = VeryLongClassName debería hacer el truco.

+0

El nombre no es tan largo, pero yo quiero que sea exactamente 1 carácter cuando se utiliza la clase en el interactivo sesión. –

+1

la primera respuesta, no hay votaciones alternas, igual que la respuesta aceptada que tiene 24 votaciones ascendentes ... tiene que ser +1 solo b/c –

11

simple que puede hacer:

ShortName = MyReallyBigClassNameWhichIHateToType 

Una clase en Python es sólo un objeto como cualquier otro, y pueden tener más de un nombre.

29

Además, si va a importar el nombre de otro módulo ...

from modulename import ReallyLongNameWhichIHateToType as FriendlyName 
+3

Mucho más limpio que la asignación, creo. – fatuhoku

Cuestiones relacionadas