私にはクラスがあり、その__init__関数はたくさんのことを行います。必要なのはそれだけです。
__init__だから私は本当にこのクラスの関数を呼び出したいだけです。変数に割り当てずにこれを行うにはどうすればよいですか?
私にはクラスがあり、その__init__関数はたくさんのことを行います。必要なのはそれだけです。
__init__だから私は本当にこのクラスの関数を呼び出したいだけです。変数に割り当てずにこれを行うにはどうすればよいですか?
クラスが呼び出されたとするとFoo、次のことができます。
Foo()
ただし、これを行う必要がある場合は、設計を再考する必要があることを示している可能性があります。
まず第一に、これは明らかに設計エラーです-そのコードはスタンドアロン関数でなければなりません。
ただし、これを行うにはいくつかの方法があります。
通常どおりインスタンス化するだけです。式の結果を変数に割り当てる必要はありません。ただし、これにより完全なオブジェクトが構築されます(そしておそらくその後すぐに破壊されます)。
Foo()
基になる関数を呼び出します。
Foo.__dict__.get('__init__')(None)
これはオブジェクトの構築をトリガーしませんが、おそらくそれは望ましくありません。Noneこの例では、の値として渡したことに注意してくださいself。これは、__init__何もしない場合にのみ機能しselfます(または、そうである場合を処理しますNone)。
2a。staticmethodを使用して、これを簡単にすることができます。
In [32]: class Foo(object):
....: @staticmethod
....: def __init__():
....: print "Foo init"
....:
In [33]: Foo()
Foo init
Out[33]: <django.core.management.commands.shell.Foo at 0x46d49b0>
In [34]: Foo.__init__()
Foo init