你如何在Python中克隆一个类?

Fra*_*ois 6 python

我有一个A类,我想要一个具有完全相同功能的B类.我不能或不想从B继承,例如做B(A)类:传递仍然我希望B与A相同,但有一个不同的i:id(A)!= id(B)注意,我不是在讨论实例,而是要克隆的类.

tru*_*ppo 13

我很确定你想要做的事情可以用更好的方式解决,但是这里有一些东西可以让你克隆一个带有新id的类:

def c():
    class Clone(object):
        pass

    return Clone

c1 = c()
c2 = c()
print id(c1)
print id(c2)
Run Code Online (Sandbox Code Playgroud)

得到:

4303713312
4303831072
Run Code Online (Sandbox Code Playgroud)


zzz*_*eek 7

我想这不是你想要的,但它的问题似乎要求......

class Foo(object):
    def bar(self):
        return "BAR!"

cls = type("Bar", (object,), dict(Foo.__dict__))

print cls

x = cls()
print x.bar()
Run Code Online (Sandbox Code Playgroud)