【发布时间】:2022-07-29 18:31:03
【问题描述】:
我正在尝试在 Python 中深度复制一个 Powerpoint 对象。当我尝试将演示文稿对象复制到新变量时,它会出错。做浅拷贝的时候不会报错,所以跟深拷贝有关系。
预期输出
无错误地制作演示对象的副本。
from pptx import Presentation
import copy
prs1 = Presentation()
prs1.slide_width = Cm(75)
prs1.slide_height = Cm(45)
slide_layout = prs1.slide_layouts[6]
slide = prs1.slides.add_slide(slide_layout)
shapes = slide.shapes
prs2 = copy.deepcopy(prs)
TypeError: __new__() missing 1 required positional argument: 'xFill'
我知道以前有人问过,但我不明白。我必须添加什么作为参数? __new__?
这也会报错:prs2 = copy.deepcopy(prs, Presentation.__new__)
浅拷贝也不起作用,因为当我更改复制对象中的某些内容时,原始对象也会更改。
【问题讨论】:
-
copy.deepcopy(prs)中的prs未在您显示的代码中定义。它来自哪里?
标签: python object copy deep-copy python-pptx