小编Jia*_* Du的帖子

Python pickle 使用 getattr 进行循环递归?

class Test(object):
    def __init__(self, a):
        self.a = a

    def __getattr__(self, name):
        return getattr(self.a, name)

from pickle import loads, dumps
loads(dumps((Test(something),)))
Run Code Online (Sandbox Code Playgroud)

我有:

      7     def __getattr__(self, name):
----> 8         return getattr(self.a, name)

RuntimeError: maximum recursion depth exceeded
Run Code Online (Sandbox Code Playgroud)

任何提示?

我可以通过更改以下代码来解决此问题:

if 'a' in self.__dict__:
    return getattr(self.a, name)
Run Code Online (Sandbox Code Playgroud)

但我不想。有什么更好的解决办法吗?

谢谢

python pickle getattr

5
推荐指数
1
解决办法
541
查看次数

标签 统计

getattr ×1

pickle ×1

python ×1