我在使用类和对象的 python 中遇到了一些麻烦。我有两个类,我分别实例化了一个对象。当用户键入某个字符串时,我想将这些对象传递给一个函数。然后该函数将调用它所采用的对象的类方法。(每个类的方法具有相同的名称)。我在下面做了一个示例文件:
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() 在运行时被调用并要求输入。然后第二个 input() 被调用。有人可以解释为什么即使 if 语句没有机会评估字符串, Call2() 也会运行?可能有很多我误解的事情。任何帮助表示赞赏。
编辑:好的,我知道在声明字典期间调用了这些函数。在将对象传递给它的同时,您将如何将函数链接到 dict?