函数
函数
1.动态参数
-
三元运算符:return...if...else
return+成立的结果+if...else+不成立的结果
-
动态参数:(万能传参 )
*args万能的位置参数,可以同时接受多个参数,以元组的形式返回
*kwargs万能的关键字参数,可以同时接受多个参数,以字典的形式返回
顺序:位置参数>动态位置参数>关键字参数>动态关键字参数
# *args 是万能(接受任意多个)的位置参数 *在函数定义的时候叫做聚合 def func(a,b,*args): print(a,b,args) func(1,2,3,4,5,6,7,8,9,0) # *args 是万能(接受任意多个)的位置参数 **的时候叫打散(不在定义函数里) def func(a,b,*args): print(a,b,*args) func(1,2,3,4,5,6,7,8,9,0) # *kwargs 是万能(接受任意多个)关键字参数 *在函数定义的时候叫做聚合 def func(a,b,c,e,**kwargs): print(a,b,c,e,kwargs) func(1,2,3,4,k=5,v=6) #1 2 3 4 {'k': 5, 'v': 6} # *kwargs 是万能(接受任意多个)的位置参数 *的时候叫打散(不在定义函数里) def func(a,b,c,e,**kwargs): print(a,b,c,e,*kwargs) func(1,2,3,4,k=5,v=6) #1 2 3 4 k v #万能无敌传参 unc(*args,**kwargs): print(args,kwargs) func(1,1,2,2,p=1,i=8) #(1, 1, 2, 2) {'p': 1, 'i': 8}
2.函数的注释
用来解释函数的功能
def bijiao(a,b):
"""
用于判断两数大小
:param a: int
:param b:int
:return:
"""
if a>b:
return a
else:
return b
print(bijiao(4,5))
3.名称空间
名称空间:是存放名字和变量之间关系的地方
内置空间:已存在的函数
全局空间:在py文件中,顶头写的就是一个全局空间
局部空间:在函数里的为局部空间
加载顺序:内置空间>全局空间>局部空间
取值顺序:局部空间>全局空间>内置空间
-
作用域
全局作用域:内置空间+全局空间
局部作用域:局部空间
4.函数嵌套
不管在什么位置,只要是函数名+(),就是在调用函数,return后面没有值,并有print时,就返回none,return后面有值,就返回return后的值。没有print就不返回
在嵌套函数中,先执行调用函数上面的print,一级一级的向上执行,然后斜向下至执行
5. global 和 nonlocal
global函数:为了数据的安全性,只能修改全局变量,局部内不能修改全局变量,如果修改许调用global函数
nonlocal函数:修改局部空间的变量值,只修改上一层变量,如果上一层中没有变量就往上找一层,只会找到函数的最外层,不会找到全局进行修改