【问题标题】:Defining aliases for keywords in Python在 Python 中为关键字定义别名
【发布时间】:2013-07-05 13:04:02
【问题描述】:

我想用西班牙语而不是英语在 Python 中编程。如何为iffor等关键字定义别名?

【问题讨论】:

  • 除非你用西班牙语编写自己的解释器,否则你不能这样做:)
  • 你没有。而且,如果您设法做到了,那么您将无法从不会说西班牙语的人那里获得帮助,并且您将来从事国际项目也将更加困难。
  • 当然可以,只要修改Python源码中包含的语法文件中的语句名称,重新编译Python即可。但这是一个相当糟糕的主意。
  • 这是一个微妙的区别:Python 不是英语,而是一种独立的语言,其标记恰好与英语单词一致。相反,具有与西班牙语一致的标记的语言不是 Python,而是其他一些语言。
  • @chepner 如果 Python 有宏支持(坏主意恕我直言),那么区别会更细微

标签: python


【解决方案1】:
  1. 你没有。 “if”和“for”是 Python 的硬编码部分。你可以编写自己的编程语言或翻译器,但你不能在真正的 Python 中做你要求的事情(你可以在 Lisp 或 C/C++ 中使用宏)。

  2. 更重要的是,programming is done in English。这不一定是公平的,但事实就是如此。所有文档都是英文的,所有库中的方法也是如此。来自 ESR:英语是黑客文化和互联网的工作语言,您需要了解它才能在黑客社区中发挥作用。” 和 "芬兰人 Linus Torvalds 用英语编写代码(显然他从未想过要这样做)。他的流利英语一直是他能够招募全球社区的重要因素Linux 的开发人员。这是一个值得效仿的例子。”

【讨论】:

  • 我也一直用英文评论。使用本地语言会适得其反(尤其是如果它没有导入与 CS 和编程相关的所有技术术语,或者导入了但没有人知道它们)。
  • 我认为这取决于开发人员的流利程度。如果所有的开发者都是中国人,而且他们的英语很差,那么他们的英文 cmets 就没有中文 cmets 的价值。如果项目是内部的,那么没有理由不恕我直言。
  • 出现一个新问题:英语还是美式英语?
  • @ArtB 你永远不知道一个项目的未来,几年后谁来维护它
  • @Morwenn 我使用美式英语作为代码,因为它更简洁,并且倾向于与 3rd 方库保持一致。在 cmets 中,两者非常相似,所以这并不重要。
【解决方案2】:

一般来说这是不可能的(很容易)。您可以查看http://en.wikipedia.org/wiki/Non-English-based_programming_languages 以了解其他人之前所做的事情,尤其是查看将 python 翻译成俄语/中文的项目,并确定有多少工作(很多)以及是否值得为西班牙语做这件事(可能不会)。

【讨论】:

    【解决方案3】:

    如果您可以将 iPython 作为依赖项,您可以查看Custom input transformation — IPython 3.2.1 documentation

    基本上,ipython 已经对提供给提示的任何内容进行了预处理,它允许代码在它处理的各种编译步骤中指定更多的转换,然后再将其传递给 python 解释器本身。

    乍一看,最适合转换保留关键字的转换器是TokenInputTransformer.wrap()

    【讨论】:

      【解决方案4】:

      我认为您需要重新编译 Python 并自己进行更改。无论如何,这是关于它的一般讨论:

      http://www.python.org/dev/peps/pep-0306/

      (请注意:)...)

      【讨论】:

      • 通过这样做,您正在制作自己的 Python 分支,它与 100% 的 Python 代码不兼容。做得好。 (不要这样做,PEP306 是给核心开发者的指南。)
      • 我只是在回答他的问题,而不是评估这是否是正确的发展方式。
      猜你喜欢
      • 2012-01-17
      • 2016-06-26
      • 2021-09-03
      • 1970-01-01
      • 2020-03-17
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      相关资源
      最近更新 更多