2009-05-08 12 views
31

Jeśli mam klasę Pythona, w jaki sposób mogę alias tej nazwy klasy do innej nazwy klasy i zachować wszystkie jego metody, członków klasy i członków instancji? Czy to możliwe bez dziedziczenia?Jak alias klasy Pythona ma inną nazwę bez dziedziczenia?

np. Mam klasy takich jak:

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

Tworzę interaktywną sesję konsoli, w którym nie ma palce moich użytkowników odpaść podczas tworzenia instancji klasy w interaktywnych sesji, więc chcę alias że naprawdę długa nazwa klasy do czegoś małego jak "C". Czy istnieje prosty sposób, aby to zrobić bez dziedziczenia?

Odpowiedz

60
C = MyReallyBigClassNameWhichIHateToType 
+4

Działa dobrze, ale prowadzi do zamieszania na dłuższą metę. Jeśli nie lubisz go pisać, dlaczego nie naprawić jego nazwy raz na zawsze? –

+1

Przesadziłem. Oryginalna nazwa ma 7 znaków, ale naprawdę chcę, aby nazwa interaktywna miała 1 znak. –

9

Sformułuj nazwę, nie ma powodu, dla którego powinna mieć tak długą nazwę.

W przeciwnym razie whateverName = VeryLongClassName powinien załatwić sprawę.

+0

Nazwa nie jest to długo, ale ma to być dokładnie 1 znak kiedy użyć klasy w interaktywny sesja. –

+1

pierwsza odpowiedź, bez upvotes, taka sama jak zaakceptowana odpowiedź, która ma 24 przegrane ... musi dać +1 tylko b/c –

11

Można po prostu zrobić:

ShortName = MyReallyBigClassNameWhichIHateToType 

Klasa w Pythonie jest tylko przedmiot jak każdy inny, a może mieć więcej niż jedną nazwę.

29

Ponadto, jeśli importujesz nazwę z innym modułem ...

from modulename import ReallyLongNameWhichIHateToType as FriendlyName 
+3

O wiele czystsze niż zadanie, myślę. – fatuhoku

Powiązane problemy