Python学习笔记:函数实参的用法

一、传递实参

1.位置实参

这个用法大家估计都很熟悉了,就是函数调用时实参的位置要和函数定义的形参位置对应。`

def complex(first,second):
    ans.real=first.real*second.real-first.imag*second.imag;
    ans.imag=first.real*second.imag+first.imag*second.real;
    return ans;
    
a=1+2i;
b=2-3i;
c=complex(a,b);

这个是计算复数乘法的伪代码,其中first,second是需要传入的形参,分别代表复数相乘的第一个数和第二个数。我们知道复数乘法是不满足的交换律的,所以如果我们要计算(1+2i)*(2-3i)的话,函数调用一定要是complex(a,b),而不能是complex(b,a),否则就是错的。

2.关键字实参

关键字实参是传递给函数的名称-值对,关键字实参无需考虑函数调用中的实参顺序,还以上面的例子为例:

def complex(first,second):
    ans.real=first.real*second.real-first.imag*second.imag;
    ans.imag=first.real*second.imag+first.imag*second.real;
    return ans;
    
a=1+2i;
b=2-3i;
c=complex(second=b,first=a);

这个是把b和second关联起来,a和second关联起来,所以无需考虑实参的顺序。
相比于位置实参的用法,关键字实参更加精确,但是需要记住原函数的形参名。

3.默认值

def AreaCicle(r,pi=3.14):
    return pi*r**2;
    
s1=AreaCicle(2);
s2=AreaCicle(2,3.1415936);

这是一个计算圆的面积的函数,函数形参里面有一个默认值pi=3.14,如果你默认pi=3.14,你可以像s1=AreaCicle(2)这样调用它,计算的结果就是3.14*2^2;你也可以像s2=AreaCicle(2,3.1415936)这样调用它,说明你不用3.14作为pi的默认值,而是用了3.1425926,更加精确。

4.传递任意数量的实参

如果要传入任意数量的实参,必须要将任意数量的实参都放在最后。Python首先匹配位置实参和关键字实参,再将余下的实参都放在最后一个实参中。

def personal_skills(name,*skills):
    print(name+"you have mastered the following languages:");
    for language in skills:
        print(language);

personal_skills("Alice","Python");
personal_skills("Bob","Python","Java","C++");

在这个例子中,无论是第一个调用还是第二个调用,函数都把第一个实参作为name,而剩下的实参作为skills。第一个调用中,Alice只掌握了Python,所以第一个调用中skills只有Python。同理,第二个调用skills有Python,Java,C++三种。

发布了9 篇原创文章 · 获赞 2 · 访问量 666

猜你喜欢

转载自blog.csdn.net/qq_41195985/article/details/104044733
今日推荐