【问题标题】:TypeError: __new__() missing 1 required positional argument: 'xFill' Python deepcopy errorTypeError: __new__() 缺少 1 个必需的位置参数:'xFill' Python deepcopy 错误
【发布时间】: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


【解决方案1】:

将下一行中的 prs 更改为 prs1,因为到目前为止代码中只使用了 prs1

prs2 = copy.deepcopy(prs)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 2019-06-25
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多