gpt4 book ai didi

python 意外的属性错误

转载 作者:行者123 更新时间:2023-11-30 23:30:56 25 4
gpt4 key购买 nike

我对 python 很陌生,作为练习,我编写了一个简单的反向函数。

代码:

def m_reverse(x):
if len(x) == 1:
return x
return m_reverse(x[:-1]).insert(0,x[-1])

当我尝试时,我得到以下结果:

>>> m_reverse([1,2,3,4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in m_reverse
File "<stdin>", line 4, in m_reverse
AttributeError: 'NoneType' object has no attribute 'insert'

我的错误是什么?我缺少任何关键数据吗?

最佳答案

对于 python 内置函数,如果函数就地改变参数,按照惯例它会返回 None。因此,由于 .insert 改变了列表,因此它返回 None

你的想法很好,我认为逻辑是有道理的——从实现的角度来看,你可以使用列表串联,而不是使用insert:

def m_reverse(lst):
if len(lst) == 1:
return lst
else:
return [lst[-1]] + m_reverse(lst[:-1])
# return lst[-1:] + m_reverse(lst[:-1]) would also work.

关于python 意外的属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20250672/

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