如果需要接受任意数量的实参,但又不知道传递给函数的是什么样的信息?在这种情况下可将函数编写成能够接受任何数量的键值对,调用语句提供了多少就接受多少。
例如下面的示例:build_profile()函数不仅接收名和姓,还接受任意数量的关键字实参
这个程序中:
一.函数定义
提供了名和姓,同时允许根据需要提供任意数量的名值对。形参**user_info中这两个星号让Python创建一个名为user_info的字典,该字典包含函数收到的其他所有名值对。在这个函数中,可以像访问其他字典那样访问userinfo中的名值对。
二.函数体:创建用户信息字典
将名和姓加入字典user_info,因为总是会从用户那里收到这两项信息,而这两项信息还没被放在字典中,接下来,将字典user_info返回函数调用行。
三.函数调用build_profile()
传递名('阿尔伯特')、姓('爱因斯坦')和两个键值对(居住地='普林斯顿' 和 研究领域='理论物理学'),并将返回的user_info赋給变量uesr_profile再打印这个变量。在调用这个函数时,不管额外提供了多少个键值对,它都能正确的处理。
四.打印结果,最终输出的字典
在编写函数时,可以用各种方式混合使用位置实惨、关键字实参和任意数量的实参。要正确的使用这些类型的实参并知道使用它们的时机,需要一定的练习。