2009-05-08 11 views
31

私はpythonクラスを持っていますが、そのクラス名を別のクラス名にエイリアスして、そのメソッドとクラスメンバーとインスタンスメンバーをすべて保持する方法はありますか?これは継承を使わずに可能ですか?継承を使用せずに別の名前を持つようにPythonクラスをエイリアスするにはどうすればよいですか?

私のようなクラスを持っている:

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

私は私のユーザーの指が対話型セッションでクラスをインスタンス化中に脱落しないように、対話型コンソールセッションを作成していますので、私は本当にエイリアスにしたいです長いクラス名を「C」のような小さなものに変換します。継承なしでこれを行う簡単な方法はありますか?

答えて

60
C = MyReallyBigClassNameWhichIHateToType 
+4

うまく動作しますが、長期的には混乱につながります。入力するのが嫌ならば、一度だけ永遠に名前を修正するのはなぜですか? –

+1

私は誇張していました。元の名前は7文字ですが、私は本当に対話的な名前を1文字の長さにしたいと思います。 –

9

名前をリファクタリングしてください。名前が長すぎる必要はありません。

それ以外の場合は、whateverName = VeryLongClassNameがすべきです。

+0

名は、長くはありませんが、私は、対話型でクラスを使用するとき、私はそれが正確に1文字になりたいですセッション。 –

+1

最初の答え、upvotes、24 upvotesを持っている受け入れられた答えと同じ... +1だけb/cを持っています –

11

あなたは簡単に行うことができます:Pythonで

ShortName = MyReallyBigClassNameWhichIHateToType 

クラスは、他のどのような単なるオブジェクトであり、複数の名前を持つことができます。あなたが別のモジュールから名前をインポートしている場合

29

はまた、...

from modulename import ReallyLongNameWhichIHateToType as FriendlyName 
+3

譲渡よりずっときれいだと思います。 – fatuhoku

関連する問題