python/公开课/文档/年薪50W+的Python程序员如何写代码/code/Python/opencourse/part01/example09.py

20 lines
373 B
Python
Raw Normal View History

2024-12-04 00:04:56 +08:00
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))