复制代码

函数学习

# encoding:utf-8
# 函数就是封装一个功能
# 三元运算 ret = x if x>y else y
# 实参
# 位置参数 按照顺序,一一对应
# 关键字参数 可以不按照顺序,但是必须一一对应
# def fun1():
# return x+y
# print(fun1(y=199,x=89))
# 混合参数 关键字参数一定要在位置参数后面
# 形参
# 形参位置 位置参数,*args,默认参数,**kwargs
# 1.默认参数:def fun(a='666'):
# 2.位置参数
# 3.动态参数 *在实参中代表打散,在形参中代表聚合
# 为了拓展,对于传入的实参数量不固定,万能参数,动态参数,*args(位置参数聚合到一个元组里),**kwargs(关键字参数聚合在一个字典里)
# def sum(*args,**kwargs): #在函数的定义时,在*位置参数,聚合
# print(args) #*args将所有的实参的位置参数聚合到一个元组,并将这个元组赋值给args
# sum(1,2,3,4,name='ak',time='10.01')
# sum(*l1,*l2) *可以把实参打散,本来l1是作为一个单独的东西加入元组,如果l1是列表,那么加*是把列表里的值取出来再作为一个个单独的
# 数据加入到元组中
# def fun2(x) x为形参
# 函数的返回值:return 结束函数,给函数的执行者返回值 fun2()
# return 单个值
# return 多个值 传多个值之后得到的是一个元组
# 名称空间(名称与值的内存地址的对应关系,全局,临时(函数里面的),内置(一些内置函数)),
# 作用域(全局作用域(全局名称空间,内置名称空间),局部作用域(临时名称空间)),
# 取值顺序 就近原则
# 局部名称空间 --》全局名称空间 ---》内置名称空间 单向从小到大
# 加载顺序
# 内置名称空间 ---》全局名称空间(当程序执行时) ---》局部名称空间(当函数调用的时候)
# global
# 局部名称空间能引用全局名称空间的值,但是不能改变它,如果要在局部空间改变全局变量,使用global,定义一个全局变量
# nonlocal
# 子函数对父函数的变量进行修改
# 此变量不能是全局变量
posted @ 2020-06-18 17:12  BU羡  阅读(120)  评论(0)    收藏  举报