在生产代码中使用中缀运算符hack(Python)

时间:2010-03-09 00:55:16

标签: python

您对在生产代码中使用infix operator hack有何看法?的问题:

  • 这将对速度产生影响。
  • 已经定义了与具有这些运算符的对象发生冲突的可能性。对于旨在处理任何类型对象的通用代码,这似乎特别危险。

遗憾的是,这不是内置的 - 它确实提高了可读性

2 个答案:

答案 0 :(得分:6)

它会比更多Pythonic代码慢得多,比较脆弱(例如你建议的方式),并且对于第一次遇到这样的代码的每个专业Python程序员都感到困惑。

如果您想将Python变成允许用户定义的中缀运算符(例如Haskell)的极少数语言之一,那么最好设计一种动态改变语法的方法,将其实现为修补Python的解析器,并开始游说 - 如果它像你说的那样提高了可读性,那么让Guido批准一个干净,易于解释的实现并不是那么难(如果Guido,就像我一样嫌疑人,应该严厉拒绝它,然后你可能想要思考谁是一个更好的判断语言可读性:你,或者是最易读的广泛语言之一的设计师?但我不能引导Guido,那就是 tim 机器人的工作; - )。

答案 1 :(得分:1)

在我个人看来,这在生产代码中不是一个好主意:最大的问题是它完全不标准,可能会让不熟悉的读者想知道这种新颖的语法突然出现在哪里。

我认为你应该更喜欢清晰而不是简洁 - Python不是C!