首页 > 解决方案 > “在运行时创建的函数”

问题描述

我从这里了解到,第一类对象的一个​​特点是它可以在运行时创建。

我不清楚何时在运行时实际创建函数。谁能告诉我如何识别在运行时创建的函数和不是在运行时创建的函数?python中的所有函数都是在运行时创建的?

标签: pythonfunctionpython-decorators

解决方案


那篇文章并不令人惊奇……Python中的所有内容都是“在运行时创建的”,您需要将其与编译语言(例如C)进行比较,以找出编译时间和运行时间之间的区别。您还可以与 PHP(您似乎已经使用过)之类的语言进行比较,在这些语言中,您必须调用诸如传递字符串之类的魔术方法call_user_func,而不仅仅是传递函数对象。我不太了解 PHP,但它似乎与以下成语作斗争:

def foo(a):
  def bar(b):
    return a * b
  return bar

baz = foo(3)
print(baz(5))

wherebaz是一个“绑定”a到 value的闭包3,即保持对它的引用,以便以后可以使用它。我认为您需要创建一个在 PHP 中捆绑此功能的类和对象

我感觉像是一个演讲的链接:https ://www.youtube.com/watch?v=_AEJHKGk9ns可能有助于更好地理解名称和值在 Python 中是如何工作的。一个更高级的工具是dis模块,它可以很好地理解这样的事情是如何工作的


推荐阅读