Python 如何修改模块和包,同时保持原始的完整性?

Python 如何修改模块和包,同时保持原始的完整性?,python,pdf,inheritance,Python,Pdf,Inheritance,我有一个用python编写的程序,使用PyPDF2包来刮取一批pdf文件。这些PDF的形状不是最好的,因此为了让我的程序运行,我需要按照本网站的建议修改包库中的PDF.py文件: 有没有一种方法可以在保持原始文件完整的同时实现对文件的更改?我尝试过创建PdfileReader类的子类,并按照上面链接的规定修改“read”方法,但是,我发现这会导致一些我希望避免的导入依赖性问题 有更简单的方法吗?我建议将pdf.py文件复制到我们的脚本目录中,并将其重命名为mypdf.py。然后,您可以随意修改

我有一个用python编写的程序,使用PyPDF2包来刮取一批pdf文件。这些PDF的形状不是最好的,因此为了让我的程序运行,我需要按照本网站的建议修改包库中的PDF.py文件:

有没有一种方法可以在保持原始文件完整的同时实现对文件的更改?我尝试过创建PdfileReader类的子类,并按照上面链接的规定修改“read”方法,但是,我发现这会导致一些我希望避免的导入依赖性问题


有更简单的方法吗?

我建议将
pdf.py
文件复制到我们的脚本目录中,并将其重命名为
mypdf.py
。然后,您可以随意修改副本,而不影响原件。您可以使用导入包

import mypdf

我为
shutil.py
做了类似的操作,因为Windows中的默认缓冲区大小太小,无法传输大文件。

我建议将
pdf.py
文件复制到脚本目录中,并将其重命名为
mypdf.py
。然后,您可以随意修改副本,而不影响原件。您可以使用导入包

import mypdf
我为
shutil.py
做了类似的事情,因为Windows中的默认缓冲区大小太小,无法传输大文件。

您可以使用
setattr()
添加(或重新定义)类的方法,如下所示(其中类是内联定义的,而不是仅为了说明而导入的):

您可以像这样使用
setattr()
添加(或重新定义)类的方法(其中类是以内联方式定义的,而不是仅为说明目的而导入的):