deepcopy
从copy
不会复制一个类:
>>> class A(object):
>>> ARG = 1
>>> B = deepcopy(A)
>>> A().ARG
>>> 1
>>> B().ARG
>>> 1
>>> A.ARG = 2
>>> B().ARG
>>> 2
是唯一的办法吗?
B(A):
pass
通常,继承是正确的方法,正如其他发布者已经指出的那样。
但是,如果您确实想重新创建具有不同名称且没有继承的相同类型,则可以这样进行:
class B(object):
x = 3
CopyOfB = type('CopyOfB', B.__bases__, dict(B.__dict__))
b = B()
cob = CopyOfB()
print b.x # Prints '3'
print cob.x # Prints '3'
b.x = 2
cob.x = 4
print b.x # Prints '2'
print cob.x # Prints '4'
您必须注意可变属性值:
class C(object):
x = []
CopyOfC = type('CopyOfC', C.__bases__, dict(C.__dict__))
c = C()
coc = CopyOfC()
c.x.append(1)
coc.x.append(2)
print c.x # Prints '[1, 2]' (!)
print coc.x # Prints '[1, 2]' (!)
问题内容: 如何在Python中复制文件? 我找不到任何东西。 问题答案: ┌──────────────────┬────────┬───────────┬───────┬────────────────┐ │ Function │ Copies │ Copies │Can use│ Destination │ │ │metadata│permissions│buffer │may be dir
问题内容: 我对列表副本有一些问题: 所以之后我得到了E0来自,我做的副本E0通过调用。我猜这里是的较深的副本E0,我通过。但是在主要功能上。 为什么循环之前的结果与for循环之后的结果不同? 下面是我的代码: 问题答案: 不是深层副本。你不使用做出深层副本两者并很浅拷贝)。 你用于深度复制列表。 请参阅以下代码段 现在看deepcopy操作
问题内容: 这个问题已经在这里有了答案 : 如何在Python中复制文件? (17个答案) 5年前关闭。 使用Windows File Explorer或Mac’s Finder将文件复制到常规右键单击复制>右键单击粘贴的时间至少要长3倍。有没有比Python更快的替代方法?可以采取什么措施来加快文件复制过程?(文件目标位于网络驱动器上……如果有任何区别……)。 编辑后: 这是我最终得到的结果:
问题内容: 我需要将一个远程映像(例如)复制到我的服务器上。这可能吗? 您如何验证这确实是图像? 问题答案: 去下载: 验证可以使用PIL 即使图像数据无效,如果您只想验证这是图像,也 可以使用imghdr 该方法检查标题并确定图像类型。如果无法识别图像,它将返回无。
我是python新手。我正在尝试运行我的第一个hello world程序,但我收到一条错误消息。 请在屏幕截图下方查找 错误msg如下所示: 文件“”第1行 打印“hello”^ 语法错误:“print”调用中缺少括号
问题内容: 我有一个现有的virtualenv,其中包含很多软件包,但是旧版本的Django。 我想要做的就是复制此环境,因此我拥有另一个环境,该环境具有完全相同的软件包,但更新版本的Django。我怎样才能做到这一点? 问题答案: 最简单的方法是使用pip生成需求文件。需求文件基本上是一个文件,其中包含要安装(或在pip生成文件的情况下已经安装)的所有python软件包的列表,以及它们的版本。