gpt4 book ai didi

python - Python 和 Perl 中是否有像 Ruby 中那样的全局对象?

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:33 24 4
gpt4 key购买 nike

在 Ruby 中,当我们简单地定义一个方法时:

def test
puts "test!"
end

它成为全局对象上的一个方法(没有独立的函数),我们甚至可以这样做:

puts self

或者

puts methods.sort

因为全局环境本身就是一个对象...

这对 Python 和/或 Perl 有效吗?如果没有,是否可以模拟?

编辑

我是编译器爱好者。

我实际上正在尝试为这三种使用 Objective-C 运行时命名空间版本的语言实现编译器。我试图弄清楚如何在另一种语言上访问以一种语言定义的方法/类/对象。类层次结构应该是完全不同的,但是如果全局定义的方法(就像我在 Ruby 中展示的那样)可以透明地相互直接访问,那将非常有用,所以这就是为什么我试图弄清楚 Perl 和 Python 如何对待这样的东西与Ruby相比。我也很感激对这个问题的建议。

虽然这个问题也应该与其他人相关,但我相信/希望。 :)

最佳答案

在 perl 中,事物将存储在包含包的符号表中(除 main 之外的所有包本身都包含在 main 的符号表中)。

%main::是主包表。包表中的值通常是 glob,但有时是其他东西(例如前向声明的原型(prototype))。

更新:我看到您现在在问题中描述了您的实际目标。在我看来你想阅读 perlcall .除非你想实际翻译和编译 Objective C 中的 perl 代码(一个非常困难的项目),在这种情况下你可能想从 PPI::Dumper 的修改版本开始。为您处理解析。

关于python - Python 和 Perl 中是否有像 Ruby 中那样的全局对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19940613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com