gpt4 book ai didi

python - 扩展 Python 和 Objective-C

转载 作者:行者123 更新时间:2023-11-30 23:59:19 26 4
gpt4 key购买 nike

我是干净代码的粉丝。我喜欢我的语言能够表达我想要做的事情,但我也喜欢反射(reflect)这一点的语法。

例如,我在 Objective-C 中为越狱的 iPhone 开发了很多程序,这些程序使用运行时的 method_setImplementation() 函数修补其他代码。或者,在 PyObjC 中,我必须使用语法 UIView.initWithFrame_(),这对于方法名称的结构方式来说也非常糟糕且不可读。在这两种情况下,该语言在语法上都不支持这种情况。我发现了实现此目的的三种基本方法:

  • 疯狂的宏。看看这个“CaptainHook”,它做的是我的事以可用的方式寻找,但它不是很干净而且是一个主要的黑客攻击。
  • 还有“Logos”,实现了一个非常好的语法,但是用 Perl 编写并解析我的代码大量的正则表达式。这吓到我。我喜欢添加的想法%hook ClassName,但不使用解析 C 的正则表达式或Objective-C。
  • 最后是 Cycript。这是一JavaScript 的扩展与 Objective-C 的接口(interface)运行时并允许您使用Objective-C 风格的代码在你的JavaScript,并将其注入(inject)其他流程。这很可能是最干净,因为它实际上使用解析器对于 JavaScript,但我不是总的来说,该语言的忠实粉丝。

我应该并且应该如何创建 Python 和 Objective-C 的扩展来允许我做到这一点?如果只在像这样的非常专业的领域,是否值得为我的语言编写一个解析器来将语法转换为更好的东西?我应该忍受默认的 Objective-C hooking 或 PyObjC 的可怕语法吗?

最佳答案

如果您在编译器或解释器设计方面没有任何经验,我的回答是肯定的,这是计算机科学中最大的挑战之一。

如果您确实有过这样的经历,我的答案就会变成“这真是个愚蠢的主意。”

您认为这会成为其他人想要使用的大型成熟产品吗?如果您这样做,那就继续吧,否则它只会分散您编写优秀应用程序的注意力。

关于python - 扩展 Python 和 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474554/

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