簡體   English   中英

在 python class 中返回 self 只返回 NoneType

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM