将值传递给函数

时间:2015-12-23 14:01:36

标签: python

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

import boto
ec2_conn = boto.connect_ec2(aws_access_key_id='XXX', aws_secret_access_key='XXX')

ami='ami-XXX'
key_name='XXX15a.pem'
instance_type='t1.macro'

aid="image_id='%s', placement='us-east-1a', key_name='%s', instance_type='%s'" % (ami, key_name, instance_type)

当我尝试执行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>

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

1 个答案:

答案 0 :(得分:1)

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

params = dict(ami='ami-XXX', key_name='XXX15a.pem', instance_type='t1.macro', placement='us-east-1a')
ec2_conn.run_instances(**params)

将它们存储在dict中,并使用**将其展开为关键字参数。