美文网首页ITS·黑客
python学习笔记4-函数的默认参数值

python学习笔记4-函数的默认参数值

作者: lucky07 | 来源:发表于2017-04-07 23:22 被阅读0次

经验:一定要仔细看讲义,讲的很清楚。要多次看看啊。

def addList(L=['a']):

L.append('END')

return L

以上调用多次,会出现多个END!!!

以下所有的调用,都正常显示!!

def sst(s="aa"):

s=s + "b"

return s


def ssr(s=""):

s=s + "b"

return s


def num_test(s=1):

s=s+1

return s


def saar(s=''):

s=s + 'b'

return s

总结:

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

这个函数defadd_end(L=[]):

L.append('END')

return L

在定义的时候,L的值被指向了对象[],

我们第一次调用函数的时候,>>>add_end()

['END']

因为没有给参数,默认L=[]

就是L的值被指向了对象[],(可以理解为赋值)

定义函数的时候,括号里的不是变量类型,是定义了类型,并赋值了。

而且这赋值只有在第一次引用的时候有用。因为这是可变对象。如果是不变对象,那么第二次引用的时候,继续赋值。

上面这句话尽量不要这样理解。请按照下面理解:

def函数的时候,L已经被分配了内存空间,这才是需要重视的地方。即使你调用再多次,L就是指向一个内存空间。

而String和int不一样,是不变对象,def函数的时候,指向了一个空间。一旦再次调用,马上指向了新的空间,如下图。

总结就是:函数定义默认参数要牢记一点:默认参数必须指向不变对象!

不可变(immutable):int、字符串(string)、float、(数值型number)、元组(tuple)

可变(mutable):字典型(dicti)、列表型(list)

上图中=['a']在第二次调用时已经没有意义了,可以这样理解。L对象已经被建立了。确实没有意义。有意义的是函数定义的一开始。L对象建立。

函数定义默认值,首先指出了变量类型,其次指出了默认参数。再理解到函数定义的一开始。默认参数L对象建立。最后理解不可变对象和可变对象。把那几个程序都敲敲,就可以了。

关于测试的时候一些小错误

num和num()的区别,一个是函数调用,一个是函数名

如果直接打函数名,就会出现下面的内容,这是因为返回的是函数num所在的内存地址

相关文章

  • python学习笔记4-函数的默认参数值

    经验:一定要仔细看讲义,讲的很清楚。要多次看看啊。 def addList(L=['a']): L.append(...

  • Python函数参数传递机制(超级详细)

    Python中,函数参数由实参传递给形参的过程,是由参数传递机制来控制的。通过学习《Python函数值传递和引用传...

  • Python学习笔记

    参考文章 Python学习笔记[2] 一步一步教你认识Python闭包 高阶函数 特殊的函数,特殊在能将函数作为参...

  • ES6-参数处理

    默认参数值 函数默认参数允许在没有值或undefined被传入时使用默认形参。 传入undefined或者其它假值...

  • python函数

    python函数 什么是函数 函数语法 调用函数 函数参数形参与实参传参指定参数传参参数默认值可变参数参数解包参数...

  • Python学习-函数

    查看所有Python相关学习笔记 此篇文章用于记录学习过程中接触到的与函数有关的知识点 函数: 形参:函数创建时括...

  • 简书样式测试

    Python基本语法&结构 函数 定义 参数 位置参数 参数传入时, 实参与形参位置一一对应 默认参数 设置默认参...

  • 函数相关

    函数定义 def 定义函数,函数返回值用return; python参数定义顺序必须是:必选参数、默认参数、可变参...

  • python 函数的可变参数

    python学习笔记,特做记录,分享给大家,希望对大家有所帮助。 可变参数 在Python函数中,还可以定义可变参...

  • Effective Python 学习笔记 1

    Effective Python 学习笔记 1 PEP 8规范 命名 使用下标获取列表元素、调用函数或者给关键字参...

网友评论

    本文标题:python学习笔记4-函数的默认参数值

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