与Python中的functionobject用法混淆

2024-06-11 01:33:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用“思考python”来学习python,在这个过程中,我经历了下面的一段代码,作为一个初学者,我不明白它是如何工作的,请解释下面的代码以及它背后的各种概念。在

练习:函数对象是一个可以赋值给变量或作为参数传递的值。为 例如,do\u tween是一个将函数对象作为参数并调用它两次的函数:

def do_twice(f):
    f()
    f()

# Here’s an example that uses do_twice to call a function named print_spam twice.

def print_spam():
    print 'spam'

do_twice(print_spam)

此代码将o/p作为 垃圾邮件 垃圾邮件 我不知道该怎么做,我想用这个概念作更深入的解释


Tags: 对象函数代码概念过程def垃圾邮件spam
1条回答
网友
1楼 · 发布于 2024-06-11 01:33:54

Python函数是一类对象。就像其他对象一样,它们可以分配给变量并传递。在

>>> def print_spam():
...     print 'spam'
... 
>>> print_spam
<function print_spam at 0x105722ed8>
>>> type(print_spam)
<type 'function'>
>>> another_name = print_spam
>>> another_name
<function print_spam at 0x105722ed8>
>>> another_name is print_spam
True
>>> another_name()
spam

在上面的示例会话中,我使用print_spam函数对象,将其分配给another_name,然后通过另一个变量调用它。在

您从thinkpython引用的代码所做的就是将print_spam作为参数传递给函数do_twice,该函数调用它的参数f两次。在

相关问题 更多 >