クラスとオブジェクトを使用してPythonで問題が発生しています。2 つのクラスがあり、それぞれのオブジェクトをインスタンス化しました。ユーザーが特定の文字列を入力したときに、これらのオブジェクトを関数に渡したいと思います。次に、この関数は、受け取るオブジェクトのクラス メソッドを呼び出します。(メソッドは各クラスで同じ名前を持ちます)。以下のサンプルファイルを作成しました。
class Test1(object):
def method1(self):
print("test1")
class Test2(object):
def method1(self):
print("test2")
def Call(something):
return something.method1
def Call2(something):
y = input("> ")
return something.method1
array = [Test1(), Test2()]
my_dict = {'call': Call(array[0]), 'call2': Call2(array[1])}
x = input("> ")
if x in my_dict:
my_dict[x]()
私が思うに、実行時に Call2() が呼び出され、入力を求められます。次に、2 番目の input() が呼び出されます。if ステートメントが文字列を評価する機会がない場合でも Call2() が実行される理由を誰かが説明できますか? 誤解している部分も多々あるかと思います。どんな助けでも大歓迎です。
編集:さて、dictの宣言中に関数が呼び出されることを理解しています。オブジェクトを dict に渡しながら、関数を dict にリンクするにはどうすればよいでしょうか?