作业

函数:首先要考虑,遇到一个功能就要分装成函数
函数命名,参数根据实际情况决定要不要传:
1参数不确定要传
2为了简化操作可以传
要不要返回值,
1.有没有无法确定的值,有就需要,确定不了几个值就传及几个。
2.调用者需要,就需要返回值,可以返回多个值。
例如打印图像不要返回值,计算结果需要返回值
3.目的是利用函数将封装代码、调用代码、使维护成本降低
引用传递: 给a附一个值,a就是一个引用,引用了一个数据?
如果堆里的内存没有人指向他,那就没有用
函数就是对象,在堆中存储,将这个函数的内存地址付给一个值,实质是在传递我们的内存地址 默认值函数
在python 中科院给函数给予默认值,如果在调用的时候没有事先说明,函数就按默认值工作
在定义函数的时候,如果存在有默认值的函数,有默认值的参数要跟在没有默认值的参数后面,佛则在调用时无法确定参数到底传给那个参数。
全局变量和局部变量
全局变量:就是定义在py文件中,能被任何函数、类能够正常访问的变量
局部变量:定义在函数内部的变量叫做局部变量
函数本身是对象,储存在堆中,但是函数的调用实在栈中调用,压栈(test()叫做压栈)函数调用之后立即弹栈
在局部变量中不能修改(增加,删除,修改)全局变量。如果需要修改,需要首先申明这个全局变量,global关键字 可变参数、命名参数、万能参数:
可变参数:*args表示函数可变参数
关键字参数: **kwargs 简称kw
参数问题
默认值参数
可变参数
命名参数
万能参数
在python 中,函数是对象,函数中参数可以是任何类型所以,在python 中,函数的参数可以是函数 匿名函数: lambda表达式 只用一次以后再也不就可以用这个 lambda:语言
优点:简化了代码的书写,有利于书写
缺点:增加了代码的复杂程度,不利于读,增加了维护成本 递归 函数自身调用自身
为了防止形成死循环直到栈溢出,所以必须要有终止条件 在几十层内速度快,但是在50层以上占用内存巨大,适用于需要速度的层数稍等运算
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。
Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值