新しいインスタンスを作成せずに__init__
から引数を抽出する方法とは何ですか? コード例は:Pythonのコンストラクタ関数__init__からの引数のイントロスペクション
class Super:
def __init__(self, name):
self.name = name
私はSuper.__dict__.keys()
型ソリューションのようなものを探しています。値を追加せずに名前の引数情報を取得するだけです。そのような選択肢はありますか?
### Run test.a ###
ArgSpec(args=['self', 'name'], varargs=None, keywords=None, defaults=None)
>>>
注:inspect.getargspec
が実際に以下を参照してください、Super
のインスタンスを作成しません:
import inspect
class Super:
def __init__(self, name):
print 'instantiated'
self.name = name
print inspect.getargspec(Super.__init__)
この出力
質問は不明です。名前の価値をチェックし、新しいインスタンスを作成するかどうかを決定したいのですか? – ronakg
私はインスタンスを全く作成したくありません。オブジェクトの引数をイントロスペクトしたいこれは、「このオブジェクトがどのような引数を持っているか」という質問と同じです。それは値に関するものではなく、一般的なイントロスペクションです。私はもう少し理解できるように質問を変えました。 –
インスタンスは '__init__'が呼び出されるまでに既に作成されています。この回答を見るhttp://stackoverflow.com/questions/674304/pythons-use-of-new-and-init – ronakg