20 lines
373 B
Python
20 lines
373 B
Python
![]() |
import copy
|
||
|
|
||
|
|
||
|
class PrototypeMeta(type):
|
||
|
|
||
|
def __init__(cls, *args, **kwargs):
|
||
|
super().__init__(*args, **kwargs)
|
||
|
cls.clone = lambda self, is_deep=True: \
|
||
|
copy.deepcopy(self) if is_deep else copy.copy(self)
|
||
|
|
||
|
|
||
|
class Student(metaclass=PrototypeMeta):
|
||
|
pass
|
||
|
|
||
|
|
||
|
stu1 = Student()
|
||
|
stu2 = stu1.clone()
|
||
|
print(stu1 == stu2)
|
||
|
print(id(stu1), id(stu2))
|