为什么标准类型中包含复数而小数不包含?
Complex - 开箱即用,而 Decimal - 在标准(插件)模块中。
在现实生活中,银行业需要后者,这比虚数要普遍得多。
从语言作者的角度来看,答案很有趣。
谁知道?
在我看来,相反的做法似乎更合乎逻辑 - 否则你会在学校告诉“内置类型” - 在这里你有这样的鱼雷......
是否应该有一些关于这个主题的PEP(Python 增强提案) ?
为什么标准类型中包含复数而小数不包含?
Complex - 开箱即用,而 Decimal - 在标准(插件)模块中。
在现实生活中,银行业需要后者,这比虚数要普遍得多。
从语言作者的角度来看,答案很有趣。
谁知道?
在我看来,相反的做法似乎更合乎逻辑 - 否则你会在学校告诉“内置类型” - 在这里你有这样的鱼雷......
是否应该有一些关于这个主题的PEP(Python 增强提案) ?
根据HISTORY的说法,复数是在 1996 年被添加到 python-1.4-beta1 中的,那是在 PEP 之前,所以为什么这个类型是内置的而不是单独的模块的问题只能由 Guido 自己来肯定地回答。我会说这只是因为它允许视图的输入
1+2j有效。2004 年将 Decimal 类型添加到 python-2.4-alpha-3 (请参阅PEP-0327)。我看不出有什么理由可以内置它。这不是那么恕我直言的主要原因是,与二进制浮点相比,它的实现相当复杂且速度较慢,并且以牺牲速度为代价的十进制舍入的范围非常小。
我认为小数类型是标准的但不是内置的,因为它在c中没有简单的对应物。真正的类型以简单的类型
complexin表示,c99不需要对内容进行不断的监控以进行简单的操作。即使对于简单的加法、乘法运算,在c中也没有实现 Decimal 类型。