Pycharm 为什么伪代码的输出在Python和C++中不同? 我现在学习Python,之前我在C++上工作。今天我正在看一个关于Python概念的教程,我看到了这个代码,虽然在Python上运行良好,但是应该根据我或者更坦率地给出错误,根据C++ + < /P> 这里是C++代码,它给出错误:请检查下面的输出

Pycharm 为什么伪代码的输出在Python和C++中不同? 我现在学习Python,之前我在C++上工作。今天我正在看一个关于Python概念的教程,我看到了这个代码,虽然在Python上运行良好,但是应该根据我或者更坦率地给出错误,根据C++ + < /P> 这里是C++代码,它给出错误:请检查下面的输出,pycharm,Pycharm,输出: 十二, 进程已完成,退出代码为0 那么,为什么python自己选择doMath的第二个顺序函数定义呢?它怎么能自己决定我想要第二个定义而不是第一个??为什么它允许使用相同名称和相同数量参数的多个定义 或者更确切地说,也许问题是,为什么我们不能编译一个像C++那样的Python代码,至少不在PyGrand或者我知道的几个其他人上?因为如果我们可以,它将首先编译并确定在一个名称下有两个函数定义,具有相同数量的参数,因此根本不会运行。和传统的C语言一样。它们是非常不同的语言,所以它们的行为不同

输出:

十二,

进程已完成,退出代码为0

那么,为什么python自己选择doMath的第二个顺序函数定义呢?它怎么能自己决定我想要第二个定义而不是第一个??为什么它允许使用相同名称和相同数量参数的多个定义


或者更确切地说,也许问题是,为什么我们不能编译一个像C++那样的Python代码,至少不在PyGrand或者我知道的几个其他人上?因为如果我们可以,它将首先编译并确定在一个名称下有两个函数定义,具有相同数量的参数,因此根本不会运行。和传统的C语言一样。它们是非常不同的语言,所以它们的行为不同

Python没有函数重载,因此第二个定义只是覆盖第一个定义


但是C++确实有重载,所以它尝试将第二个定义视为重载。但是,不能使用与第一个定义具有相同参数的第二个定义重载函数,因此会引发错误

它们是非常不同的语言,所以它们的行为也不同

Python没有函数重载,因此第二个定义只是覆盖第一个定义


但是C++确实有重载,所以它尝试将第二个定义视为重载。但是,不能使用与第一个定义具有相同参数的第二个定义重载函数,因此会引发错误

Python是一种基于脚本的语言,这意味着不需要编译,只需实时执行代码即可。在Python中定义函数时,可以将其视为将函数分配给名称。当您想要调用该函数时,您可以调用存储在该名称中的函数。如果重新定义该函数,则覆盖该名称。 这与C++的不同之处在于,代码是预先编译的。C++同时编译所有函数,意味着DOMATH的第二个声明会导致模糊的调用。另一方面,Python在运行时声明函数。如果重新分配doMath,脚本将只调用其最新定义。
回答你的问题为什么?:好吧,这就是Python的工作原理。这种设计有许多优点,例如,如果您想根据上下文更改函数的行为方式。Python也有缺点,比如需要解释器才能运行,因为正如您所提到的,我们无法编译Python。如果您想要与传统的C语言具有相同的行为,请使用C语言。不同的语言有不同的特性,在不同的应用程序中可能会更好地工作。

Python是一种基于脚本的语言,这意味着不会进行编译,只需实时执行代码即可。在Python中定义函数时,可以将其视为将函数分配给名称。当您想要调用该函数时,您可以调用存储在该名称中的函数。如果重新定义该函数,则覆盖该名称。 这与C++的不同之处在于,代码是预先编译的。C++同时编译所有函数,意味着DOMATH的第二个声明会导致模糊的调用。另一方面,Python在运行时声明函数。如果重新分配doMath,脚本将只调用其最新定义。
回答你的问题为什么?:好吧,这就是Python的工作原理。这种设计有许多优点,例如,如果您想根据上下文更改函数的行为方式。Python也有缺点,比如需要解释器才能运行,因为正如您所提到的,我们无法编译Python。如果你想要和旧式C一样的行为,使用C。不同的语言有不同的怪癖,在不同的应用中可能会更好。

我想用C++来代替所有的东西,但遗憾的是它是一种无用的语言。我想用C++来代替所有的东西,但遗憾的是它是一个没有用的语言。刚刚知道python不支持函数重载lol。。。非常感谢^ ^刚刚知道python不支持函数重载lol。。。非常感谢^_^