内容提要
PEP 791 提议创建一个新的子模块 math.integer,专门用于整数相关的数学函数,如 gcd() 和 isqrt()。该模块将包含 comb()、factorial()、gcd()、isqrt()、lcm() 和 perm() 等函数,确保返回整数并接受整数类型参数。此变更不会破坏向后兼容性,现有的别名将被保留但不再推荐使用。
关键要点
-
PEP 791 提议创建一个新的子模块 math.integer,专门用于整数相关的数学函数。
-
新模块将包含 comb()、factorial()、gcd()、isqrt()、lcm() 和 perm() 等函数,确保返回整数并接受整数类型参数。
-
此变更不会破坏向后兼容性,现有的别名将被保留但不再推荐使用。
-
当前的 math 模块包含的函数与 C 标准无关,导致描述模块范围和内容变得困难。
-
新子模块将简化函数的文档描述,减少用户的概念负担,并提高函数的可发现性。
-
提议中的新函数包括 c_div()、gcdext()、fibonacci() 等,但这些不在当前提案范围内。
-
新子模块将接受整数和实现 __index__() 方法的对象,确保计算结果的准确性。
延伸问答
PEP 791 提议了什么内容?
PEP 791 提议创建一个新的子模块 math.integer,专门用于整数相关的数学函数。
math.integer 模块包含哪些函数?
math.integer 模块将包含 comb()、factorial()、gcd()、isqrt()、lcm() 和 perm() 等函数。
PEP 791 对向后兼容性有什么影响?
此变更不会破坏向后兼容性,现有的别名将被保留但不再推荐使用。
为什么需要创建 math.integer 子模块?
创建 math.integer 子模块是为了简化函数的文档描述,减少用户的概念负担,并提高函数的可发现性。
PEP 791 中提到的可能扩展函数有哪些?
可能扩展的函数包括 c_div()、gcdext()、fibonacci() 等,但这些不在当前提案范围内。
math.integer 模块如何处理输入参数?
新子模块将接受整数和实现 __index__() 方法的对象,确保计算结果的准确性。