__new__方法解释
def __deepcopy__(self, memo):cls = self.__class__ # self.__class__将实例变量指向类,
result = cls.__new__(cls)
memo = result # 使用内置函数id()查看python对象的内存地址
for k, v in self.__dict__.items():
if k not in ('logger', 'logger_file_handler'):
setattr(result, k, copy.deepcopy(v, memo))
# shallow copy of loggers
result.logger = copy.copy(self.logger)
# use setters to configure loggers
result.logger_file = self.logger_file
result.debug = self.debug
有没有哪位大佬,通俗易懂的方式解释下 cls.__new__(cls)的作用 本帖最后由 jackz007 于 2022-11-21 14:35 编辑
def __deepcopy__(self, memo):
cls = self.__class__ # __new__() 需要用到 cls,取对象自己类名 __class__ 作为目标类名 cls
result = cls.__new__(cls) # 调用 cls 类的 __new__() 方法,创建一个属于 cls 类的新对象 result
所以,result = cls . __new__(cls) 就是为了创建一个和 self 同类的新对象 result 本帖最后由 阿奇_o 于 2022-11-21 14:45 编辑
认真多读几下 官方文档,你就知道__new__到底是干嘛用的了。。
当然前提是,你得先搞清楚 各个OOP基础概念,以及最关键的 "在Python中,到底什么是对象"?。。
具体是什么我都懒得解释了,毕竟之前费时费力解释过几次了, 。。 {:10_250:}
页:
[1]