美文网首页
python-调用函数(2)

python-调用函数(2)

作者: ragna | 来源:发表于2017-03-03 10:47 被阅读0次

python中,有默认参数时,需要将默认参数放在必选参数之后

有多个默认参数时,可以通过顺序提供默认参数,也可以不通过默认顺序而是指定参数名提供参数。默认参数很有用,但有的时候也会变成坑。例如如下情况:

图1 可变默认参数函数调用

原因解释如下:

Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。

所以,定义默认参数要牢记一点:默认参数必须指向不变对象!

上述函数可修改成如下方式:

图2 默认参数调用

为什么要设计str、None这样的不变对象?因为不变对象一旦创建,对象内部的数据就不能修改,这样就减少了由于修改数据导致的错误。此外,由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点问题都没有。我们在编写程序时,如果可以设计一个不变对象,那就尽量设计成不变对象。

相关文章

  • python-调用函数(2)

    python中,有默认参数时,需要将默认参数放在必选参数之后 有多个默认参数时,可以通过顺序提供默认参数,也可以不...

  • python-调用函数(3)

    参数组合 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可...

  • [转载]JavaScript权威指南(8)--函数

    文章前言 一 函数定义 二 函数调用 1,函数调用 2,方法调用 3,构造函数调用 4,间接调用 三 函数的实参和...

  • Kotlin 小细节记录(7)函数-高阶函数-Lambda

    函数-高阶函数-Lambda 1. 函数调用省略 函数调用省略invoke() 直接使用 (......) 2. ...

  • 调用函数 funtion 的方法

    1. 直接调用 2. 在对象方法里调用 3. 使用构造函数调用函数 4. 作为函数方法(call、apply)调用函数

  • 廖雪峰 | 3.0 函数

    1 调用函数 2 定义函数 3 函数的参数 4 递归函数 1 调用函数 1,使用函数时,需要知道函数的名称和参数2...

  • 函数的形参与实参 经典例子

    console Hello, World!调用函数methodTest后 a= 10调用函数methodTest2...

  • js中的this

    总结:1.一个函数被调用,this指向调用这个函数的对象(直接调用这个函数的对象)2.一个函数被调用,但是这个函数...

  • JS中this关键字详解

    1、JS中函数的几种调用方式 (1)普通函数调用(2)作为对象方法调用(3)作为构造函数调用(4)apply/ca...

  • java 方法内联

    1 内联概念:把函数调用的方法直接内嵌到方法内部,减少函数调用的次数 2 函数的调用过程: 调用某个函数实际上将...

网友评论

      本文标题:python-调用函数(2)

      本文链接:https://www.haomeiwen.com/subject/ausqgttx.html