Python 参数传递

在第一节中,我们定义了一个函数sum_add(a,b),实现了求两个数的和的功能,在实际的使用我们需要向这个函数传递我们要求和的两个加数的值,传给a,b。a、b就是函数的形参。
我们传进去的两个参数就是实参。

C语言的关键字参数

在C语言中,函数的参数传递是跟顺序有关,从左往右,但是在Python中通过关键字参数进行参数传递可以跟位置无关。
先看一个C语言的例子:

#include <stdio.h>
void my_print(int a, int b)
{    
    printf("a = %d b = %d\n", a, b);
}
int main()
{=    
    my_print(3, 4);
    my_print(4, 3);    
    return 0;
}

运行结果:

a = 3 b = 4
a = 4 b = 3
请按任意键继续. . .

我们看到,C语言的参数传递是按照从左往右的传递规则,在实际编译成汇编语言时,也可以看到从左往右,分别使用R0、R1、R2、堆栈来保存函数的参数。

Python参数

而在Python中,Python默认会通过位置匹配变量名,按照位置进行值传递。除此之外,Python的关键字参数允许通过变量名进行匹配,而不是通过位置。
再看一个Python的例子:

# -*-coding:utf-8 -*-
__author__ = 'zhaixue.cc'
def my_print(a, b, c):
    print a, b, c
my_print(10,20,30)
my_print(b=20, c=30, a=10)

运行结果:

C:\Python27\python.exe F:/python/python_proj/base.py
10 20 30
10 20 30
Process finished with exit code 0

默认参数

在一个函数运行之前,如果没有传入参数值的话,参数会被赋一个默认值。默认参数创建函数可选的参数。

# -*-coding:utf-8 -*-
def my_print(a, b=20, c=30):
    print a, b, c
my_print(10,20,30)
my_print(15)
my_print(a=15,b=25)

运行结果:

C:\Python27\python.exe F:/python/python_proj/base.py
10 20 30
15 20 30
15 25 30
Process finished with exit code 0
《Linux三剑客》视频教程,从零开始快速掌握Linux开发常用的工具:Git、Makefile、vim、autotools、debug,免费赠送C语言视频教程,C语言项目实战:学生成绩管理系统。详情请点击淘宝链接:Linux三剑客