我在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声明期间调用的。在将对象传递给dict的同时,如何将函数链接到dict?