Python &引用;“在运行时创建的函数”;

Python &引用;“在运行时创建的函数”;,python,function,python-decorators,Python,Function,Python Decorators,我从中了解到,第一类对象的特征之一是可以在运行时创建它 我不清楚函数是在运行时实际创建的。可以告诉我如何识别在运行时创建的函数和在运行时未创建的函数吗?python中的所有函数都是在运行时创建的?这篇文章并不令人惊讶。。。Python中的所有内容都是“在运行时创建的”,您需要将其与编译语言(例如C)进行比较,以找出编译时和运行时之间的差异。您还可以与PHP(您似乎已经使用过)这样的语言进行比较,在PHP中,您必须输入并传递字符串,而不仅仅是传递函数对象。我对PHP不太了解,但它似乎很难适应以下习

我从中了解到,第一类对象的特征之一是可以在运行时创建它


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

这篇文章并不令人惊讶。。。Python中的所有内容都是“在运行时创建的”,您需要将其与编译语言(例如C)进行比较,以找出编译时和运行时之间的差异。您还可以与PHP(您似乎已经使用过)这样的语言进行比较,在PHP中,您必须输入并传递字符串,而不仅仅是传递函数对象。我对PHP不太了解,但它似乎很难适应以下习惯用法:

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

baz = foo(3)
print(baz(5))
其中,
baz
是一个将
a
绑定到值
3
的闭包,即保留对它的引用,以便以后使用。我认为您需要创建一个类和对象,将此功能捆绑在PHP中


我觉得这是一个演讲的链接:可能有助于更好地理解名称和值在Python中的工作方式。一个更高级的工具是,它有助于理解类似的工作原理

询问对象是数据和相关函数的集合。数据是在运行时创建的,但函数通常不是。在大多数情况下,组成类定义的函数预先分组,但也可以在运行时选择特定函数作为对象的成员。选择是运行时,但所有函数都是在传统语言中预先存在的。要了解更多关于在运行时创建的函数的信息,请阅读并检查。但即使lambda函数不是在运行时编写的,它们只是在没有名称的情况下创建的。我想真正动态函数的一个例子是bash中的
eval
,您可以在运行时构造一个字符串并执行该字符串,但在bash的领域中,所有内容都是在运行时作为字符串计算的,因此即使这样,区别也是模糊的。在计算历史上,我们有了自修改代码的概念,这可能与真正的动态编程非常接近。