标签:应该 ade 变化 func 动态 container 注释 传递 containe
初识函数
def 函数名():
? #函数体
? #return 返回值
函数名()
没有返回值:默认返回None
不写return:函数内代码执行完毕自动结束
只写return:结束一个函数
return None
def my_len(s):
#计算s的长度
i = 0
s = ‘12345‘
for k in s:
i += 1
print(i)
res = my_len() #函数内代码执行完毕自动结束
print(res)#没有返回值,None
def func():
print(‘666‘)
retuen
ret = func()
print(ret) #只写return,后面不写其他内容,返回None
def func():
print(‘666‘)
retuen None
print(‘999‘)
ret = func()
print(ret) #返回None
返回一个值
可以返回任何数据类型
只要返回了就可以接收到
def my_len(s):
#计算s的长度
i = 0
s = ‘12345‘
for k in s:
i += 1
return i
res = my_len()
print(res) #5
返回多个值
多个返回值用多个变量接收
返回多个值用一个变量接收,得到一个元组
def func():
retuen 1,2,3
r1,r2,r3 = func()
print(r1,r2,r3) #1 2 3
ret = func()
print(ret) #(1, 2, 3)
**实参角度 **
位置参数
按照位置传参,从左到右,实参与形参一一对应。
python
def compare(x,y):
the_max = x if x>y else y # x= 22,y = 8
return x
ret = compare(22,8)
print(ret)
关键字参数
按关键字传参
def compare(x,y):
the_max = x if x>y else y # x= 10,y = 20
return x
ret = compare(y = 22,x = 8)
print(ret)
混合参数
位置,关键字混合传参(必须先按照位置传参,再按照关键字传参,不能给同一个变量传多个值)
def compare(x,y):
the_max = x if x>y else y # x= 10,y = 20
return x
ret = compare(22,y = 8)
print(ret)
形参角度
位置参数
默认参数
不传就是用默认的参数,如果传了就用传的。(将不经常变化的值设置成默认参数)
默认参数的陷阱
def fuc(k,l = {}):
l[k] = ‘sb‘
print(l)
func(jim) #{‘jim‘:‘sb‘}
func(tom) #{‘jim‘:‘sb‘,‘tom‘:‘sb‘}
# 如果默认参数的值是一个可变数据类型,
# 那么每一次调用函数的时候,
# 如果不传值就公用这个数据类型的资源
动态参数
可以有0个或任意个参数
*args 接收的是按照位置传参的值,组成一个元组
**kwargs接收的是按照关键字传参的值,组成一个字典
def func(*args,**kwargs):
print(args,kwargs)
func(1,‘r‘,t,a = 12,b = 567) #(1, ‘r‘, ‘t‘) {‘a‘: 12, ‘b‘: 567}
def func(*args): # 站在形参的角度上,就是给变量加上*,组合传递来的值
print(args)
func(1,2,3,4,5)
l = [2,7,4,1]
func(*l) #站在实参的角度上,给一个序列加上*,将这个序列顺序拆散
顺序:位置参数,*args,默认参数,**kwargs
标签:应该 ade 变化 func 动态 container 注释 传递 containe
原文地址:https://www.cnblogs.com/maystar/p/12853761.html