如何解决Python类递归属性装饰器
我试图让 Maxnum 成为类 Node 的一个属性,但我得到了“最大递归深度超出”
class Node:
def __init__(self,data=None):
if data is None:
data = []
self.data = data
@property
def Maxnum(self,nlist=None):
if nlist == None:
nlist = self.data
if len(nlist) == 1:
return nlist[0]
else:
mx = self.Maxnum(nlist[1:])
return mx if mx > nlist[0] else nlist[0]
@property
def MinNum(self):
mn = self.data[0]
for n in self.data:
if n <= mn:
mn = n
return mn
def main():
with open('random_numbers.csv',mode='r',encoding='utf-8-sig') as f:
lst = [int(x) for x in f.read().split(",")]
y = Node(lst)
print(y.MinNum)
print(y.Maxnum)
return
if __name__ == "__main__":
main()
单独使用 Maxnum 函数效果很好,但是当我添加装饰器时会产生错误:“超出最大递归深度”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。