现在来看括号做什么用:它用来传递参数(argument)!
不,卡特,计算机非常听话,它们永远也不会争论1。在编程中,参数这个词是指你交给函数的一条信息。我们把这称为:你向函数传递参数。
1argument 也有“争论”的意思,卡特显然是把这里的 argument 理解为“争论”了。——编者注
假设你希望对你的所有家庭成员使用这个地址打印函数。所有人的地址都是一样的,但是每一次人名会有所不同。不能在函数中把人名硬编码写成 Warren Sande,你可以建立一个变量。调用函数时将这个变量传递到函数。
要说明这是如何工作的,最容易的方法就是举例子。在代码清单 13-2 中,我修改了地址打印函数,要使用一个对应人名的参数。参数是有名字的,就像其他变量一样。我把这个变量命名为 myName
。
函数运行时,变量 myName
会填入调用函数时为它传入的任何参数。调用函数时,我们把参数放在括号里,通过这种方式将参数传入函数。
因此,在代码清单 13-2 中,参数 myName
赋值为 Carter Sande。
代码清单 13-2 向函数传递参数
运行代码,你会得到期望的结果:
>>> ===================== RESTART =====================>>>Carter Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9
这看上去与第一个程序(没有使用参数)得到的输出完全相同。不过,我们每次可以用不同方式打印地址,比如:
printMyAddress("Carter Sande")printMyAddress("Warren Sande")printMyAddress("Kyra Sande")printMyAddress("Patricia Sande")
现在每次调用函数时输出都不同。人名会变,因为我们每次都向函数传入了不同的人名。
>>> ============================ RESTART ============================>>>Carter Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Warren Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Kyra Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Patricia Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9
注意,我们向函数传入什么值,函数中就会使用什么值,并作为地址的人名部分打印出来。
如果每次函数运行时有多个信息不同,就需要多个参数。下面就来讨论这个问题。