是否可以在python中为'def'添加语法同义词?

时间:2013-01-16 10:46:16

标签: python syntax metaprogramming

我想用let而不是def。

我正在寻找以这种方式改变自己代码语法的理智方式。

基本上在c中它将是

#define let def

如何在python中做同样的事情?

2 个答案:

答案 0 :(得分:4)

def是python中的关键字,因此无法更改为其他任何内容。

来自docs

  

以下标识符用作保留字或关键字   语言,不能用作普通标识符。他们一定是   完全拼写如下:

and       del       from      not       while as        elif     
global    or        with assert    else      if        pass      yield
break     except    import    print class     exec      in       
raise continue  finally   is        return def       for       lambda 
try

答案 1 :(得分:0)

#define let def

这在C中有效,因为它是预处理器命令。在这里,你不是在欺骗C,而是在欺骗那些阅读你代码的人。

要在Python中实现相同功能,您需要一个预处理器。像C一样,你不会欺骗Python只会欺骗读者。

因此,您可以编写一个用于启动程序的预处理器。像C一样,你会产生一个中间文件,然后“真正的”python编译器会使用它。

我并不是唯一一个认为这不是个好主意的人。这是一个支持噩梦。 有这个偏好,但是那些追随你的人呢?如果你开始搞乱关键字,那么其他人怎么能维护这段代码?