Python 3.x 可以“定制”python吗?

Python 3.x 可以“定制”python吗?,python-3.x,Python 3.x,我是否可以更改Python的核心功能,例如,将其重写为使用sayHello world而不是printHello world? 如果这是可能的,如何做到这一点呢?是的,你可以直接写 说=打印 说你好是的,你可以写 说=打印 您好关于如何实现这一点,我看到了一些可能性。我按照需要多少编程/它们有多讨厌来排列它们: 重命名内置项 如您的示例所示,如果您使用say或printf比使用print更方便,那么您可以像其他人回答的那样,将内置函数与您自己的函数别名为say=print 重写内置代码 让我们假

我是否可以更改Python的核心功能,例如,将其重写为使用sayHello world而不是printHello world? 如果这是可能的,如何做到这一点呢?

是的,你可以直接写 说=打印 说你好

是的,你可以写 说=打印
您好

关于如何实现这一点,我看到了一些可能性。我按照需要多少编程/它们有多讨厌来排列它们:

重命名内置项 如您的示例所示,如果您使用say或printf比使用print更方便,那么您可以像其他人回答的那样,将内置函数与您自己的函数别名为say=print

重写内置代码 让我们假装我们不信任print的官方实现,我们想实现我们自己的。Python中的许多内部构件(如stdin)都包含在sys库中。如果你愿意,你可以实现你自己的。几年前我问了一个问题,讨论了如何将uu变量重命名为ans,这可能会给我们带来启发

通过预处理器发送代码 好的,所以gcc不需要C代码作为输入。如果使用正确的预编译器标志,那么在将源代码发送到python之前,您可以在源代码中计算define宏。从技术上讲,这是一个有效的答案,但令人讨厌

用另一种语言编写模块 用C编写的Cython python可以用C编写模块。如果您愿意,可以用C或assembly为printf构建包装器,并在python代码中使用该库

重新编译Python 不幸的是,不可能对所有令牌执行上述操作。如果我们想用while循环而不是while循环呢?实现这一点的唯一方法实际上是改变python本身的功能。现在,这不是为胆小的人或新的程序员准备的。编译器真的很复杂

然而,由于Python是开源的,您可以下载源代码,因此理论上,您可以进入编译器,手动进行所有需要的编辑,然后编译您的Python版本并使用它。你的代码决不会像本质上是python的分支那样具有可移植性,但从技术上讲,你可以做到这一点

或者只是符合Python标准。这也行

写政治动员
Python是一种活的语言。它不断更新。其中的主导机构是BDFL代表和理事会,但任何人都可以编写Python增强建议,以某种方式修改语言。Python中的大多数特性都是从PEP开始的。有关更多详细信息,请参阅。

关于如何实现这一点,我看到了一些可能性。我按照需要多少编程/它们有多讨厌来排列它们:

重命名内置项 如您的示例所示,如果您使用say或printf比使用print更方便,那么您可以像其他人回答的那样,将内置函数与您自己的函数别名为say=print

重写内置代码 让我们假装我们不信任print的官方实现,我们想实现我们自己的。Python中的许多内部构件(如stdin)都包含在sys库中。如果你愿意,你可以实现你自己的。几年前我问了一个问题,讨论了如何将uu变量重命名为ans,这可能会给我们带来启发

通过预处理器发送代码 好的,所以gcc不需要C代码作为输入。如果使用正确的预编译器标志,那么在将源代码发送到python之前,您可以在源代码中计算define宏。从技术上讲,这是一个有效的答案,但令人讨厌

用另一种语言编写模块 用C编写的Cython python可以用C编写模块。如果您愿意,可以用C或assembly为printf构建包装器,并在python代码中使用该库

重新编译Python 不幸的是,不可能对所有令牌执行上述操作。如果我们想用while循环而不是while循环呢?实现这一点的唯一方法实际上是改变python本身的功能。现在,这不是为胆小的人或新的程序员准备的。编译器真的很复杂

然而,由于Python是开源的,您可以下载源代码,因此理论上,您可以进入编译器,手动进行所有需要的编辑,然后编译您的Python版本并使用它。你的代码决不会像本质上是python的分支那样具有可移植性,但从技术上讲,你可以做到这一点

或者只是符合Python标准。这也行

写政治动员 Python是一种活的语言。它不断更新。其中的主导机构是BDFL代表和理事会,但任何人都可以编写Python增强建议,以某种方式修改语言。大多数功能i
n Python最初是一名政治公众人物。有关更多详细信息,请参阅。

您可以先使用say=print,然后再使用sayhello。不过,我不知道你所说的重写Python的核心功能是什么意思。请详细说明。把python想象成一种与其他开发人员交流的语言。虽然你可以自己编单词,但要在字典里查到却很困难。你会和其他开发人员一起做项目,他们不会知道你说的是什么意思。@Back2Basics这实际上是对编程的一个很好的描述。并不是你做不到,而是你不能让其他人做。你可以做say=print,然后用sayhello从今往后。不过,我不知道你所说的重写Python的核心功能是什么意思。请详细说明。把python想象成一种与其他开发人员交流的语言。虽然你可以自己编单词,但要在字典里查到却很困难。你会和其他开发人员一起做项目,他们不会知道你说的是什么意思。@Back2Basics这实际上是对编程的一个很好的描述。不是你做不到,而是你不能让其他人做。这和其他答案有什么不同?我看不到任何答案所有的评论都是答案。戈伦是第一个回答这个问题的人,这值得赞扬。依我看,在这种情况下,正确的做法是等待24小时,以便有机会将评论转化为实际答案,然后在这之后,将你的答案标记为社区维基,除非你能对这个问题提供更多的见解。这与其他答案有何不同?我看不到任何答案所有评论建议仍然是答案。戈伦是第一个回答这个问题的人,这值得赞扬。依我看,在这种情况下,正确的做法是等待24小时,给一个机会把评论变成实际的答案,然后在那之后,将你的答案标记为社区维基,除非你能提供更多关于这个问题的见解。有趣!是否可以重写内置代码并在包中提供修改后的代码?像python的某种mod?内置的是,嗯。。。内置的。如果您重写它们,那么您尝试导入的任何其他代码都可能会中断,因为它运行在不同于预期的python上。也就是说,您可以在自己的名称空间中做任何您想做的事情。很有趣!是否可以重写内置代码并在包中提供修改后的代码?像python的某种mod?内置的是,嗯。。。内置的。如果您重写它们,那么您尝试导入的任何其他代码都可能会中断,因为它运行在不同于预期的python上。也就是说,您可以在自己的名称空间中执行任何您想要的操作。