我可以根据其在内存中的地址或其 id 调用 lambda 函数吗?

阿尔。

我正在学习 Python 中的 lambda 函数。

如果我编写了一个 lambda 表达式行而不将其分配给某个函数名称,我可以稍后通过其在内存中的地址或 id 来调用该 lambda 函数吗?

或者我可以有一些“指针”,比如 C 中的内容来指向那部分内存?

在下图中,您可以看到我写了两次 lambda 表达式,发现它们在内存中具有相同的地址,但是如果将“lambda x:x**2”分配给变量 a,则地址不同。

我想根据它在内存中的地址使用该 lambda 函数“lambda x:x**2”。

谢谢。

布鲁诺·德舒利耶

您在两个 lambda 定义中看到相同 id 的事实是一个实现细节 - 第一个 lambda 被立即收集(因为没有引用它),因此该 id 可以免费重用,并且恰好被第二个重用。

不,Python 不是 C,activeley 阻止任何直接内存访问。请注意,CPython 的对象 id 是内存地址这一事实也是一个实现细节——它不是语言定义的一部分,其他实现(例如 Jhython)可以自由地使用其他东西作为对象 id。

如果您想使用 lambda(实际上 a function-lambda只是语法糖并function像常规def语句一样产生一个对象),那么您必须拥有对它的引用(作为变量,作为函数参数 - 这实际上是一个变量 - ,作为集合中的元素,作为对象的属性等)。

请注意,这也不是特定于函数,Python 函数是对象(提示:您可以在 Python 中放置在 LHS 上的所有内容都是对象)并且上述内容适用于所有对象。

我想知道我是否可以根据它在内存中的地址给一个对象起一个名字来调用或使用

你认为foo = lambda x: x*2在做什么?它“给一个对象一个名字”(或者更确切地说“将一个对象绑定到一个名称”),以便您以后可以使用它,并且绑定(内部)依赖于对象的 id/内存地址/等来访问该对象。

如果您希望了解 Python,您首先需要停止思考 C 概念并学习 Python 概念。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS Lambda可以调用Matlab函数吗?

来自分类Dev

AWS Lambda可以调用Matlab函数吗?

来自分类Dev

通过Step Function调用lambda函数时,可以指定lambda别名吗?

来自分类Dev

函数可以从先前的调用中访问其变量吗?

来自分类Dev

AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

来自分类Dev

在C / C ++中使用其地址调用lua函数吗?

来自分类Dev

Lambda 可以调用 Alexa 技能吗?

来自分类Dev

Lambda是否可以访问被调用函数的范围?

来自分类Dev

AWS Lambda层可以拦截Lambda函数处理程序,而无需功能/处理程序调用该层吗?

来自分类Dev

渴望在内存中包含函数调用数据吗?

来自分类Dev

您可以获取通过其调用函数的属性名称吗?

来自分类Dev

您可以获取通过其调用函数的属性名称吗?

来自分类Dev

可以在调用函数参数之前对其进行设置吗?

来自分类Dev

Lambda代码中的AWS Boto函数调用

来自分类Dev

基础构造函数调用中的Lambda

来自分类Dev

在AWS Lambda中调用嵌套函数

来自分类Dev

Lambda代码中的AWS Boto函数调用

来自分类Dev

AWS Kinesis + Lambda 函数:我可以在一个分片中同时调用一个 Lambda 函数的多个实例吗?

来自分类Dev

从Lambda内调用函数

来自分类Dev

如果记录顺序无关紧要,我可以使用单个Kinesis分片并行调用Lambda函数吗?

来自分类Dev

我可以在AWS Appsync解析器中有条件地调用lambda函数吗?

来自分类Dev

我可以使用泛型来调用其构造函数吗?

来自分类Dev

可以在函数上调用函数吗?

来自分类Dev

我可以直接调用函数指针吗?

来自分类Dev

我可以动态调用局部函数吗?

来自分类Dev

我可以从Selenium调用AngularJS函数吗

来自分类Dev

我可以调用JS函数吗?

来自分类Dev

我可以从Selenium调用AngularJS函数吗

来自分类Dev

在C ++中,函数的调用者可以确保其参数不会被修改吗?

Related 相关文章

  1. 1

    AWS Lambda可以调用Matlab函数吗?

  2. 2

    AWS Lambda可以调用Matlab函数吗?

  3. 3

    通过Step Function调用lambda函数时,可以指定lambda别名吗?

  4. 4

    函数可以从先前的调用中访问其变量吗?

  5. 5

    AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

  6. 6

    在C / C ++中使用其地址调用lua函数吗?

  7. 7

    Lambda 可以调用 Alexa 技能吗?

  8. 8

    Lambda是否可以访问被调用函数的范围?

  9. 9

    AWS Lambda层可以拦截Lambda函数处理程序,而无需功能/处理程序调用该层吗?

  10. 10

    渴望在内存中包含函数调用数据吗?

  11. 11

    您可以获取通过其调用函数的属性名称吗?

  12. 12

    您可以获取通过其调用函数的属性名称吗?

  13. 13

    可以在调用函数参数之前对其进行设置吗?

  14. 14

    Lambda代码中的AWS Boto函数调用

  15. 15

    基础构造函数调用中的Lambda

  16. 16

    在AWS Lambda中调用嵌套函数

  17. 17

    Lambda代码中的AWS Boto函数调用

  18. 18

    AWS Kinesis + Lambda 函数:我可以在一个分片中同时调用一个 Lambda 函数的多个实例吗?

  19. 19

    从Lambda内调用函数

  20. 20

    如果记录顺序无关紧要,我可以使用单个Kinesis分片并行调用Lambda函数吗?

  21. 21

    我可以在AWS Appsync解析器中有条件地调用lambda函数吗?

  22. 22

    我可以使用泛型来调用其构造函数吗?

  23. 23

    可以在函数上调用函数吗?

  24. 24

    我可以直接调用函数指针吗?

  25. 25

    我可以动态调用局部函数吗?

  26. 26

    我可以从Selenium调用AngularJS函数吗

  27. 27

    我可以调用JS函数吗?

  28. 28

    我可以从Selenium调用AngularJS函数吗

  29. 29

    在C ++中,函数的调用者可以确保其参数不会被修改吗?

热门标签

归档