《Python编程:从入门到实践》2-9章 笔记 (7)

输出:

What is your name? Eric Which mountain would you like to climb someday? Denali Would you like to let another person respond? (yes/ no) yes What is your name? Lynn Which mountain would you like to climb someday? Devil\'s Thumb Would you like to let another person respond? (yes/ no) no --- Poll Results --- Lynn would like to climb Devil\'s Thumb. Eric would like to climb Denali. 8 函数 8.5.2 使用任意数量的关键字实参

有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键-值对——调用语句提供了多少就接受多少。

def build_profile(first, last, **user_info): """创建一个字典,其中包含我们知道的有关用户的一切""" profile = {} profile[\'first_name\'] = first profile[\'last_name\'] = last for key, value in user_info.items(): profile[key] = value return profile user_profile = build_profile(\'albert\', \'einstein\', location=\'princeton\', field=\'physics\') print(user_profile)

输出:

{\'field\': \'physics\', \'first_name\': \'albert\', \'last_name\': \'einstein\', \'location\': \'princeton\'}

形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所有名称-值对都封装到这个字典中。在这个函数中,可以像访问其他字典那样访问user_info中的名称—值对。
在这里,返回的字典包含用户的名和姓,还有求学的地方和所学专业。编写函数时,可以以各种方式混合使用位置实参、关键字实参和任意数量的实参。

8.6 将函数存储在模块中

将函数存储在被称为模块的独立文件中,再将模块导入到主程序中,import语句允许在当前运行的程序文件中使用模块中的代码。
通过将函数存储在独立的文件中,可隐藏程序代码的细节,将重点放在程序的高层逻辑上。
这还能让你在众多不同的程序中重用函数。将函数存储在独立文件中后,可与其他程序员共享这些文件而不是整个程序。
知道如何导入函数还能让你使用其他程序员编写的函数库。

8.6.1 导入整个模块 import module_name

如果使用import语句导入了名为module_name.py的整个模块,就可使用下面的语法来使用其中任何一个函数:

module_name.function_name() 8.6.2 导入特定的函数 from module_name import function_name

通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数:

from module_name import function_0, function_1, function_2

若使用这种语法,调用函数时就无需使用句点。由于在import语句中显式地导入了函数function_name(),因此调用它时只需指定其名称。

8.6.3 使用 as 给函数指定别名

如果要导入的函数的名称可能与程序中现有的名称冲突,或者函数的名称太长,可指定简短而独一无二的别名——函数的另一个名称,类似于外号。要给函数指定这种特殊外号,需要在导入它时这样做。
下面给函数make_pizza()指定了别名mp()。这是在import语句中使用make_pizza as mp实现的,关键字as将函数重命名为你提供的别名:

from pizza import make_pizza as mp mp(16, \'pepperoni\') mp(12, \'mushrooms\', \'green peppers\', \'extra cheese\')

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwfppd.html