我从here获悉,一流对象的特征之一是可以在运行时创建它。
我不清楚何时在运行时实际创建函数。能否告诉我如何识别在运行时创建的函数和在运行时未创建的函数? python中的所有功能都是在运行时创建的吗?
答案 0 :(得分:1)
那篇文章并不令人惊讶... Python中的所有内容都是“在运行时创建的”,您需要将其与编译语言(例如C)进行比较,以发现编译时间与运行时间之间的差异。您还可以与类似PHP(您似乎曾经使用过)的语言进行比较,在这些语言中,您必须call magic methods like call_user_func
并传递一个字符串,而不是仅仅传递一个函数对象。我对PHP不太了解,但是它似乎很难与诸如以下的习惯用法相提并论:
def foo(a):
def bar(b):
return a * b
return bar
baz = foo(3)
print(baz(5))
其中baz
是将a
绑定到值3
的闭包,即保持对其的引用,以便以后可以使用。我认为您需要创建一个类和对象,将这些功能捆绑在PHP中
我感觉像是一个演讲的链接:https://www.youtube.com/watch?v=_AEJHKGk9ns可能有助于更好地了解名称和值在Python中的工作方式。 dis
module是更高级的工具,可以很好地理解此类操作的工作原理