为什么'返回自我'返回无?

idl*_*age 1 python return-value

我正试图获得链中的顶级节点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
Run Code Online (Sandbox Code Playgroud)

Gab*_*abe 7

你需要回来 self.owner.getTopParent()!

在Python中,您必须实际使用该return语句从函数返回一些内容,否则None返回.