函数 进阶

#函数def 进阶
def f(a,*args,b=2,**kwargs): #动态位置参数(万能传参)tuple,动态关键字参数dict
print(a,b,args,kwargs) #关键字参数用赋值= *args **kwargs 可变
f(1,23,444,'黑',c=4,d='jay',e='周杰伦')
#位置参数>动态位置>默认>动态关键字参数


# 命名(名称)空间
python内置多种自带函数 但run代码开始时,先遍历所有内置函数,碰到文件调用的就执行,最后执行文件自定义的函数
全局 命名空间 (全局作用域 python内置+全局)
局部 命名空间 (局部作用域 函数代码块内部)
a=10
def func():
b=3
print()
func()
print(globals()) #查看全局作用域里的变量和函数名
print(locals()) #查看局部作用于里的变量和函数名
加载 python内置>>>全局>>>函数体局部
查找(取值) 函数体局部 >>>全局>>>内置

global 可变数据类型在函数中可直接操作 不可变数据类型才需要global
nonlocal 改变最近的父级变量 变量不会被修改

nonlocal 改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.
函数: 将一个需求封装后调用,优点:除去重复代码.
函数的注释:
def f():
  '''
  '''
  return
print( )
函数嵌套(非常重要)
    避免出现环形调用

猜你喜欢

转载自www.cnblogs.com/zhangchen-sx/p/9889732.html
今日推荐