Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将值传递给函数_Python - Fatal编程技术网

Python 将值传递给函数

Python 将值传递给函数,python,Python,我有一个函数可以正确地返回替换的值,但由于某种原因,run_instances函数将整个字符串作为单个对象接收(而不是4个单独的值) 当我尝试执行run_instances函数时 ec2_conn.run_instances(aid) <Message>Invalid id: "image_id='ami-XXX', placement='us-east-1a', key_name='XXX.pem', instance_type='t1.macro'" (expecting "a

我有一个函数可以正确地返回替换的值,但由于某种原因,run_instances函数将整个字符串作为单个对象接收(而不是4个单独的值)

当我尝试执行run_instances函数时

ec2_conn.run_instances(aid)

<Message>Invalid id: "image_id='ami-XXX', placement='us-east-1a', key_name='XXX.pem', instance_type='t1.macro'" (expecting "ami-...")</Message>
ec2连接运行实例(aid)
无效id:“image\u id='ami-XXX',placement='us-east-1a',key\u name='XXX.pem',instance\u type='t1.macro'”(应为“ami-…”)

有没有办法将值正确地传递给函数?

将问题陈述简化为:如何传递多个变量,以便以后可以将它们传递到函数中,而无需单独传递所有变量…:


将它们存储在dict中,并使用
**

Err将它们展开为关键字参数<代码>运行实例(image\u id=ami,placement='us-east-1a',…)。。。!?它是类的简化版本。我知道这一点,但出于其他原因,我希望将值作为变量传递。“出于某些原因,run_instances函数将整个字符串作为单个对象接收”-“出于某些原因”是什么意思?你到底为什么期望有什么不同?!谢谢第二行工作正常。如第一行所示创建dict时,尝试将变量替换为%s时出错。您为什么尝试将变量替换为
%s
?这不是字符串插值,直接传递值。要非常明确,如果需要使用变量,请使用变量:
dict(ami=ami,key\u name=key\u name,…)
。这将使用上面定义的变量来构造dict。编写相同内容的另一种方法是
{'ami':ami,'key\u name':key\u name,…}
;也许这会让事情变得更加明显。但是为什么首先要将它们作为单独的变量来编写呢?把你在上面看到的写下来。
ec2_conn.run_instances(aid)

<Message>Invalid id: "image_id='ami-XXX', placement='us-east-1a', key_name='XXX.pem', instance_type='t1.macro'" (expecting "ami-...")</Message>
params = dict(ami='ami-XXX', key_name='XXX15a.pem', instance_type='t1.macro', placement='us-east-1a')
ec2_conn.run_instances(**params)