函数是可以被引用的(访问或者其他变量作为其别名),也可作为参数传入函数。
因为所以的对象都是通过引用来传递的,函数也不例外。
当对一个变量赋值时,实际是将相同对象的引用赋值给这个变量。
如果对象是函数的话,这个对象所有的别名都是可调用的。
>>> bar=foo
>>> bar
<function foo at 0x02F9D8A0>
>>> bar()
in foo()
当我们把foo()赋值给bar()时,bar和foo引用了同一个函数对象,所以能以和foo()相同的方式来调用bar()。
我们也可以把函数作为参数传入其他函数来进行调用。
>>> def bar(argfunc):
argfunc()
>>> bar(foo)
in foo()
注意到函数对象foo被传入到bar()中,bar()调用了foo()。
传递和调用内建函数(numConv.py)
#!/user/bin/env python def convert(func,seq): 'conv. sequence of numbers to same type' return [func(eachNum) for eachNum in seq] myseq = (123,45.67,-6.2e8,99999999) print(convert(int ,myseq) ) print(convert(float,myseq)) 如果我们运行这个程序,将会得到如下输出 [123, 45, -620000000, 99999999] [123.0, 45.67, -620000000.0, 99999999.0]