gpt4 book ai didi

python - 从 __setstate__ 调用 __init__ 可以吗

转载 作者:太空狗 更新时间:2023-10-30 00:11:06 25 4
gpt4 key购买 nike

我正在增强现有类,该类在 __init__ 函数中进行一些计算以确定实例状态。是否可以从 __getstate__() 调用 __init__() 以重用这些计算?

最佳答案

总结 Kroltan 和 jonsrharpe 的 react :

技术上没问题

从技术上讲,它会起作用,如果你做得好,它可以被认为是 OK。

实际上这很棘手,避免这种情况

如果您以后编辑代码并触摸__init__,那么很容易(甚至对您而言)忘记在__setstate__ 中使用,然后您将进入难以执行的状态调试情况(问问自己,它来自哪里)。

class Calculator():
def __init__(self):
# some calculation stuff here
def __setstate__(self, state)
self.__init__()

计算的东西最好隔离到另一个共享方法中:

class Calculator():
def __init__(self):
self._shared_calculation()

def __setstate__(self, state)
self._shared_calculation()

def _shared_calculation(self):
#some calculation stuff here

这样你会注意到。

注意:使用“_”作为共享方法的前缀是任意的,您不必这样做。

关于python - 从 __setstate__ 调用 __init__ 可以吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23461479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com