Skip to main content
 首页 » 编程设计

python之为什么 'return self' 返回 None

2025年05月04日10shangdawei

<分区>

我试图在 getTopParent() 中获取链的顶部节点。当我打印出 self.name 时,它确实打印出了父实例的名称;然而,当我返回 self 时,它返回 None。这是为什么?

class A: 
    def __init__( self, name ): 
        self.name = name 
        self.owner = None 
    def setChild( self, l ): 
        l.owner = self 
    def getTopParent( self ): 
        if( self.owner == None ): # None == top parent 
            print( "Got top: %s" % self.name ) 
            return self 
        else: 
            print( "checking %s" % self.name ) 
            self.owner.getTopParent() 
 
a = A( "parent" ) 
b = A( "child1" ) 
c = A( "child2" ) 
d = A( "child3" ) 
a.setChild( b ) 
b.setChild( c ) 
c.setChild( d ) 
 
print( d.getTopParent() ) 
>>> checking child3 
    checking child2 
    checking child1 
    Got top: parent 
    None