我试图让 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 函数效果很好,但是当我添加装饰器时会产生错误:“超出最大递归深度”。