Python学习笔记(12)- 函数(2)
发布日期:2021-10-06 14:20:16 浏览次数:2 分类:技术文章

本文共 2539 字,大约阅读时间需要 8 分钟。

- 传递列表

在函数中修改列表
将列表传递给函数后,函数就可对其进行修改。在函数中对这个列表所做的任何修改都是永
久性的,这让你能够高效地处理大量的数据。

def complete_models(design_models,completed_models):    while design_models:        model = design_models.pop()        completed_models.append(model)design_models = ['plane','ship','tank']completed_models = []complete_models(design_models,completed_models)print(design_models)print()print(completed_models)

正确打印的话能够在最后的输出中看到两个列表的内容已经发生了变化。

禁止在函数中修改列表数据
为解决这个问题,可向函数传递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件。

def complete_models(design_models,completed_models):    while design_models:        model = design_models.pop()        completed_models.append(model)design_models = ['plane','ship','tank']completed_models = []complete_models(design_models[:],completed_models)print(design_models)print()print(completed_models)

如上去传递参数的时候,打印出来的结果中你就能够发现,传递副本的那个参数列表的内容并没有发生改变。

  • 传递任意数量的实参
def make_pizza(*toppings):    """打印顾客点的所有配料"""    print(toppings)make_pizza('pepperoni')make_pizza('mushrooms', 'green peppers', 'extra cheese')

形参名*toppings中的星号让Python创建一个名为toppings的空元组,并将收到的所有值都封

装到这个元组中。但是当参数列表中不仅包括确定参数和不确定参数的时候,就需要把不确定的形参放在参数的末尾。

def make_pizza(size, *toppings):    """概述要制作的比萨"""    print("\nMaking a " + str(size) +        "-inch pizza with the following toppings:")    for topping in toppings:        print("- " + topping)make_pizza(16, 'pepperoni')make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

调用函数的时候就也需要注意实参的位置问题。

  • 使用任意数量的关键字实参
    有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少。
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)
  • 模块的导入
    函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定描述性名称,可让主程序容易理解得多。你还可以更进一步,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码。
    通过将函数存储在独立的文件中,可隐藏程序代码的细节,将重点放在程序的高层逻辑上。这还能让你在众多不同的程序中重用函数。将函数存储在独立文件中后,可与其他程序员共享这些文件而不是整个程序。知道如何导入函数还能让你使用其他程序员编写的函数库。
    导入模块的方法有多种,下面对每种都作简要的介绍。
#导入整个模块import variablevariable.make_pizza('cheese','peppers','mushrooms')#给导入的模块增加别名import variable as varvar.make_pizza('cheese','peppers','mushrooms')#导入模块内的所有方法from variable import *make_pizza('cheese','peppers','mushrooms')#导入特定的方法from variable import make_pizzamake_pizza('cheese','peppers','mushrooms')#给导入的方法加上别名from variable import make_pizza as mpmp('cheese','peppers','mushrooms')

转载地址:https://blog.csdn.net/m0_37664906/article/details/78572714 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3:
下一篇:Python学习笔记(11)- 函数(1)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月01日 18时37分48秒