[英]Return self in python class just returns NoneType
我在 python 中创建了一个链表,并想构建一个 function 来找到最后一项,但是当我设计如下时,function 返回“无”类型。 “返回自我”一定有问题,因为我在返回之前打印“自我”看起来很好。
class LinkNode():
def __init__(self,value=0,next=None):
self.val=value
self.next=next
def findlast(self):
if self.next == None:
return self
else:
self.next.findlast()
下面是创建实例
node3=LinkNode(3,None)
node2=LinkNode(2,node3)
chain=LinkNode(1,node2)
x=chain.findlast()
type(x)
无类型
def findlast(self):
if self.next == None:
return self
else:
self.next.findlast()
最后一行是一个问题,因为它没有从 function 中返回任何内容,这就是你得到None
的原因。 您应该使用(也没有多余的else
,并且使用is
with None
):
def findlast(self):
if self.next is None:
return self
return self.next.findlast()
但是,请记住,这不是递归的理想用例,最好写成:
def findlast(obj):
if obj is not None: # only needed if you may pass in None as self.
while obj.next is not None:
obj = obj.next
return obj
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.