一、函数返回值
示例:
def test1(): print('in the test1')def test2(): print('in the test2') return 0def test3(): print('in the test3') return 1,'hello',['Jim','Lilei']x=test1()y=test2()z=test3()print(x)print(y)print(z)
运行结果:
in the test1in the test2in the test3None0(1, 'hello', ['Jim', 'Lilei'])[Finished in 0.2s]
总结:
返回值的作用:
二、函数调用
示例1:
注:X、Y是形参。1、2是实参。
def test(x,y): print(x) print(y) test(1,2)
示例2:
注:位置参数和关键字参数(标准调用:实参与形参的位置需要一一对应;关键字参数的调用:位置无需固定,但是关键字参数不能放在位置参数的前面)
def test(x,y,z): print(x) print(y) print(z)test(y=2,x=1) #关键字参数调用与形参定义顺序无关test(1,2) #位置参数调用与形参一一对应test(x=2,3)#既有关键字调用,又有位置参数调用,按照位置参数执行test(2,y=3)这样就可以test(3,z=2,6)#关键参数不能写到位置参数的前面test(3,6,z=2)
三、默认参数
def test(x,y=2):print(x)print(y)test(1,3)def conn(host,port=3306): pass
四、参数组
定义:针对实参不固定的情况下,该如何定义形参?
以*开头定义一个变量名,可以接受多个实参,把这些实参放进一个元组内。
示例1:
def test(*args):print(args)test(1,2,3,5,4,23,12)test(*[1,2,3,4,5])def test1(x,*args): print(x) print(args)test1(1,2,3,4,5,6,7)注:其中的1赋值给x,剩余部分赋值给args参数组。
运行结果:
(1, 2, 3, 5, 4, 23, 12)(1, 2, 3, 4, 5)1(2, 3, 4, 5, 6, 7)[Finished in 0.2s]
示例2:与字典结合
def test2(**kwargs):print(kwargs)print(kwargs['name'])print(kwargs['age'])test2(name='Jim',age=8)
运行结果:
{'name': 'Jim', 'age': 8}Jim8
示例3:与位置参数结合
def test3(name,**kwargs): print(name) print(kwargs)test3('Jim',age=18,sex='m')
运行结果:
Jim{'age': 18, 'sex': 'm'}
示例4:位置参数和关键字参数
def test4(name,age=18,*args,**kwargs): print(name) print(age) print(args) print(kwargs)
运行结果:
Jim34(){'sex': 'm', 'hobby': 'tesla'}注:所以在匹配到*args时运行的结果是空元组()。
结语:
感谢阅读,欢迎在评论区中发表自己不同的观点,若有其他问题请在评论区留言,喜欢的朋友请多多关注转发支持一下。