函数

函数是可重复使用的,组织好的,用于实现单一或者关联功能的代码块

1.函数的定义:

函数的定义方式为:

def 函数名(参数):

      函数体

函数名的命名规则有:

  1. 函数名由字母数字下划线组成
  2. 不能以数字开头
  3. 禁止使用python关键字
  4. 不能使用中文,拼音
  5. 区分大小写
  6. 要有意义
  7. 使用驼峰命名法或者下划线命名法

2.函数的调用

函数的调用方法为:函数名()

严格来说是函数的内存地址()

函数名的本质:

  • 函数名可以赋值
  • 函数名可以作为容器类型中的一项
  • 函数名可以作为函数的参数
  • 函数名可以作为函数的返回值

函数名可以作为一个变量来使用,函数是第一类对象

3.函数的参数

函数的参数分为形参和实参

3.1形式参数(形参)

形式参数需要经过传参过程才有实际的值

形式参数分为位置参数,动态位置参数,默认参数,动态关键字参数

位置参数是按参数的位置来进行传参

动态位置参数也称不定长参数,一般表示为*args,动态位置参数会接收所有多余的位置参数,数据类型为元组

默认参数为有默认值的参数,如果不传递实参,也不会报错,如果传递实参,则使用实参的值

动态关键字参数一般表示为**kwargs,动态关键字参数会接收所有多余的关键字参数,数据类型为字典

3.2实际参数(实参)

实际参数是实际的值,实际的一块内存地址

实参分为位置参数与关键字参数

关键字参数通过形参的参数名来进行传参

3.3传参

将实际参数的值传递给形式参数的过程叫做传参

传参过程中,可能会使用到*与**

*与**的作用为解包,*用于列表等,**用于字典

4.函数的返回值

函数通过return关键字来进行返回值操作

当函数运行到return时,就会进行返回值操作并结束函数

如果函数中无return或者return无值,则默认返回值为None

5.命名空间与作用域

5.1命名空间

命名空间是存放名字与值关系的空间

命名空间包括局部命名空间,全局命名空间和内置命名空间

  • 在函数中命名的变量及函数存储在局部命名空间中
  • 直接在文件中声明的变量及函数存储在全局命名空间中
  • python解释器提供的关键字存储在内置命名空间中

加载顺序为:内置>全局>局部

取值顺序为:局部>全局>内置

先进后出,后进先出

5.2作用域

全局作用域包括内置命名空间和全局命名空间

局部作用域包括局部命名空间

6.函数的嵌套

6.1闭包

内部函数使用了外部函数的变量,内部函数就是一个闭包

主要用途:缓存,装饰器

6.2取值顺序

  • L (Local) 局部作用域
  • E (Enclosing) 闭包函数外的函数中
  • G (Global) 全局作用域
  • B (Built-in) 内建作用域

按照L>E>G>B的顺序取值

7.匿名函数

使用 lambda 来创建匿名函数。

格式:lambda x,y:x + y

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值