将下一行中的 prs 更改为 prs1,因为到目前为止代码中只使用了 prs1
prs2 = copy.deepcopy(prs)
【讨论】:
TypeError: __new__() 缺少 1 个必需的位置参数:'xFill' Python deepcopy 错误答案
TypeError: __new__() missing 1 required positional argument: 'xFill' Python deepcopy errorTypeError: __new__() 缺少 1 个必需的位置参数:'xFill' Python deepcopy 错误我正在尝试在 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
将下一行中的 prs 更改为 prs1,因为到目前为止代码中只使用了 prs1
prs2 = copy.deepcopy(prs)
【讨论】: