【发布时间】:2019-02-06 01:37:48
【问题描述】:
如果有人能帮我解决这个问题,我会非常高兴,因为我有点卡在这里。我试图“触发”该函数,方法是按名称调用它,然后添加变量,通过写入数字,这些数字之间用空格分隔。
#I tried:
#(Input: Test1 4 5)
Input = input().split()
def Test1(X,Y = 3):
print(X,Y)
dic = {'Test1':Test1}
dic[Input[0]](Input[1:len(Input)])
#But it wil give me: ['4', '5'] 3 instead of just 4 5
我想定义 X 和 Y,而不仅仅是我刚才所做的 X。
我正在使用 py3.0
我非常感谢每一个建议
【问题讨论】:
-
出于好奇,您为什么认为它会“将列表一分为二”?
Input[1:len(Input)]是单个参数。 -
好的,但是如何从中获得两个参数。我定义 X 和 Y 而不仅仅是 X?
-
所以您基本上是在尝试通过从空格分隔的字符串中解析方法名称和参数来调用 Test1 方法?
-
Input是一个字符串列表,输入字符串按空格分割。您的代码中没有任何内容将这些字符串转换为数字。 -
加一个 *
dic[Input[0]](*Input[1:len(Input)])