1.()与(,)的区别
def func(para):
print(para)
func((1))
func((1,))可知若只传入一个数则前者传到函数中的是一个数,后者是一个元组
def func(para):
print(para)
func((1,2))
func((1,2,))若传入两个数则无区别
2.这些知识其实我之前已经了解了,但由于又忘了,所以在编程时出现了错误,今天将实参传到虚参时,一直被虚参设置的默认值赋值。问题如下:
def func1(para1,para2=60):
print(para1)
print(para2)
def func2(para1,para2=60):
func1(para1,para2)
运行func2(1,30)这样输出没问题,输出就是1与30def func1(para1,para2=60):
print(para1)
print(para2)
def func2(para1,para2=60):
func1(para1,para2=60)
运行func2(1,30),输出为1与60,因为func2中的func1的para2相当于实参,其被赋值为60def func1(para1,para2=[],para3=60):
print(para1)
print(para3)
def func2(para1,para2=[],para3=60):
func1(para1,para3)
运行func2(1,30),输出为1与60,原因是fun2将para2赋给func1的para3,而func1将para3的值传给位置参数para2,最后para3由于没有参数输入,输出的就是默认参数。即在func2中的func1的参数para1与para3只是实参并不是形参我的解决办法,当然本人有点笨,如果您有什么见解请留言:
def func1(para11,para12=60):
print(para11)
print(para12)
def func2(para21,para22=60):
para11=para21
para12=para22
func1(para11,para12)
这样运行func2(1,30),便输出的是1与30当出现多个位置参数时,需要写清楚传入哪个参数:
def func1(para11,para12=[],para13=60):
print(para11)
print(para13)
def func2(para21,para22=[],para23=60):
para11=para21
para12=para22
para13=para23
func1(para11,para12,para13)
这样运行func2(1,para23=30),输出的也是1与30.
python中复合函数的参数传递
猜你喜欢
转载自blog.csdn.net/qq_37083038/article/details/103100124
今日推荐
周排行