一个人可以编辑一个内置的Python模块吗?


10

我目前正在学习Python,并且在本书中谈到使用数学库。我浏览了Python网站,发现该库有点稀缺,正在编写一些更有用的函数。例如,我继续写了一个函数来获取系数并返回方程的根。本质上是二次公式函数。我想知道是否可以将其添加到python Math库中。如果不是,如何保存它,以便可以通过调用它在其他编写的Python程序中使用该函数?


1
以下是Michael0x2a 的答案,其中涵盖了要点,但简单的版本是:不要这样做。如果我正在阅读您的代码并看到有电话给math.polynomial_roots()我,我的解释器就会感到困惑。那是一件坏事。
msw

Answers:


10

math模块是一个内置模块,因此只需修改Python解释器本身,我认为您无法对其进行修改。但是,编写模块绝对是您可以做的事情。

如果您像这样构造文件:

somefolder
    mymath.py
    myprogram.py

...您可以简单地在import mymathinside内部进行操作myprogram.py,并mymath.py像往常一样使用其中的任何函数或类。

因此,如果mymath.py看起来像这样:

def quadratic(a, b, c):
    # blah blah blah

您可以在内部执行以下操作 myprogram.py

import mymath

print mymath.quadratic(1, 2, 3)

如果希望编写的模块可用于任何程序,则可以将其复制并粘贴到正在处理的任何项目的文件夹中,或将其添加到PATH中。(例如,您可以将其包含mymath.py在site-packages文件夹中,该文件夹位于C:\Python27\Lib\site-packages我的计算机上)。完成此操作后,您应该import mymath无需复制和粘贴任何内容就可以执行此操作。

作为附带说明,numpy具有一组非常全面的数学和科学相关功能,您可以检查一下。这几乎是Python afaik的事实上的数字计算标准。


1
正是我会写的答案。从字面上看,Python被设计为可修改的。
joshin4colours 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.