前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >19-3-14Python中函数的进阶

19-3-14Python中函数的进阶

作者头像
GhostCN_Z
发布2020-04-03 14:44:18
3200
发布2020-04-03 14:44:18
举报
文章被收录于专栏:GhostCN_ZGhostCN_Z

1.动态参数:

代码语言:javascript
复制
def func(*args):    #在形参位置*叫做聚合
    print(args)     #元组形式

func(1,2,3,4,5,6)

def func(**kwargs):  # 动态关键字参数
    print(kwargs)


func(a=1, b=2, c=3)  # 关键字的形式传参

*args 和 **kwargs

  是可以更换的,但是程序员约定都用它

  用途:在不明确接收参数、数量时使用*args和**kwargs

位置参数>动态的位置参数

形参:位置>动态位置>默认参数>动态默认参数

实参:位置>关键字参数

在实参调用的时候,*将可迭代的对象打散,字典是将键取出

在形参出现*就是在聚合

在实参调用的时候,**将字典打散成  关键字参数(键=值)

在形参处出现**就是将关键字参数聚合成一个字典。

注意:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。

2.函数的注释

print(aaa._doc_)查看注释

3.名称空间

1. 内置空间中所有代码——内置空间

2. 自己写的py文件——全局空间

3. 函数中的代码——局部空间

*注:

加载顺序: 内置空间——>全局空间——>局部空间

查找值的顺序:

局部空间——>全局空间——>内置空间——>报错

作用域:

全局作用域 内置+全局=全局作用域

局部作用域 函数内的就是局部作用域

代码语言:javascript
复制
a = 10

def func():
    global a        #global:声明a为全局变量。//找到要修改的值,修改后放回
    a += 1

func()
print(a)

4.函数的嵌套

第一种函数嵌套:函数嵌套函数

第二种函数嵌套:多个函数嵌套

5.global nonlocal

nonlocal:在一个局部空间内,nonlocal会修改离他最近的那个变量,如果上一层没有就继续向上找,直到走到局部空间头部,都没有则报错。

              global:在局部修改全部变量,如果没有就创建一个新的。

def func(*args):    #在形参位置*叫做聚合

    print(args)     #元组形式

func(1,2,3,4,5,6)

def func(**kwargs):  # 动态关键字参数

    print(kwargs)

func(a=1, b=2, c=3)  # 关键字的形式传参

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档