gpt4 book ai didi

python - 类的最大递归深度

转载 作者:行者123 更新时间:2023-11-30 22:52:52 24 4
gpt4 key购买 nike

我有一个类,我试图将 is_duplicate 设置为 True,例如:

file = FileProperties(long, lat, timestamp, compas, filename)
[...]
file.is_duplicate = True

我得到了一个 RuntimeError:调用 Python 对象时超出了最大递归深度,我到底做错了什么?文件类创建也发生在 for 循环中,但我认为这不是此特定错误的问题。

class FileProperties(object):
def __init__(self, longitude, latitude, timestamp, compas, filename):
self._longitude = longitude
self._latitude = latitude
self._timestamp = timestamp
self._filename = filename
self._compas = compas
self._duplicate = False
self._teleporting = False

@property
def get_lat(self):
return self._latitude

@property
def get_long(self):
return self._longitude

@property
def get_timestamp(self):
return self._timestamp

@property
def get_filename(self):
return self._filename

@property
def get_compas(self):
return self._compas

@property
def is_duplicate(self):
return self._duplicate

@property
def is_teleporting(self):
return self._teleporting

@is_duplicate.setter
def is_duplicate(self, value):
self.is_duplicate = value

@is_teleporting.setter
def is_teleporting(self, value):
self._teleporting = value

最佳答案

在:

@is_duplicate.setter
def is_duplicate(self, value):
self.is_duplicate = value

将 self.is_duplicate 更改为 self._duplicate,我想它应该可以工作(否则请提供一个最小的工作示例)。

此错误的原因是您分配了方法 is_duplicate 而不是属性 _duplicate,因此您正在创建一个无限调用循环,因为该方法试图将自身设置为无限循环,因为它再次经过 setter 并且一次又一次...

关于python - 类的最大递归深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38378658/

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