【文件属性】:
文件名称:传递函数-qt教学大纲
文件大小:5.26MB
文件格式:PDF
更新时间:2021-06-04 01:59:51
python 核心编程 中文版 高清文字版
11.4 传递函数
当学习一门如 C 的语言时,函数指针的概念是一个高级话题,但是对于函数就像其他对象的
python 来说就不是那么回事了.函数是可以被引用的(访问或者以其他变量作为其别名),也作为参
数传入函数,以及作为列表和字典等等容器对象的元素
函数有一个独一无二的特征使它同其他对象区分开来,那就是函数是可调用的。
举例来说,可以通过函数操作来调用他们。(在 python 中有其他的可调用对象。更多信息,参
见 14 章)在以上的描述中,我们注意到可以用其他的变量来做作为函数的别名
因为所有的对象都是通过引用来传递的,函数也不例外。当对一个变量赋值时,实际是将相同
对象的引用赋值给这个变量。如果对象是函数的话,这个对象所有的别名都是可调用的。
>>> def foo():
... print 'in foo()'
...
>>> bar = foo
>>> bar()
in foo()
当我们把 foo 赋值给 bar 时,bar 和 foo 引用了同一个函数对象,所以能以和调用 foo()相同的
方式来调用 bar()。确定你明白"foo"(函数对象的引用)和"foo()"(函数对象的调用)的区别。
稍微深入下我们引用的例子,我们甚至可以把函数作为参数传入其他函数来进行调用。
>>> def bar(argfunc):
... argfunc()
...
>>> bar(foo)
in foo()
注意到函数对象 foo 被传入到 bar()中。bar()调用了 foo()(用局部变量 argfunc 来作为其别名
就如同在前面的例子中我们把 foo 赋给 bar 一样)。现在我们来研究下一个更加实际的例子,
numconv.py,代码在例子 11.3 中给出
例 11.3 传递和调用(内建)函数
(numConv.py)