ファイル内にある次のコード例を参照してください。
classattr.py
class BaseClass(object):
def __init__(self, param1, param2):
self.param1 = param1
self.param2 = param2
def somemethod(self):
return "This is returned when I do Base.__dict__"
class ChildOfBaseClass(BaseClass):
def __init__(self, param1, param2, param3, param4):
super(ChildOfBaseClass, self).__init__(param1, param2)
self.param3 = param3
self.param4 = param4
def somemethod(self, param3, param4):
a = param3 + param4
return a
インスタンスを作成する前に、クラスのすべての属性 ( などは属性と呼ばれると想定しています)param1を取得したいと考えています。param2コマンドにとdir(classattr.BaseClass)が表示されません。ただし、メソッドは返します。param1param2somemethod
次の理由で属性を取得しようとしています。モジュールclassattrは、クラスの名前が別のファイルにインポートされているclassattr.BaseClassかclassattr.ChildOfBaseClass、関数への入力として提供されています。実行時にどちらであるかを判断し、インスタンスを作成するときに適切な入力 (param1前者のparam2場合、または後者の場合はすべてのパラメーター)param1を使用したいと考えています。param4私がこれを行うことを考えていた方法は、クラスがparam3属性として持っているかどうかを確認し、正しい入力でインスタンスを作成することです。確認する別の良い方法はありますか?別の方法は、param3andparam4を入力として持つことですBaseClass何もしない場合でも、常に 4 つのパラメーターすべてを入力としてインスタンスを作成します。しかし、それは物事を行う適切な方法とは思えません。
ありがとうございました。