首页 > 解决方案 > 类内部的函数,即方法

问题描述

class t2():
    def __init__(self, name, surname ):
        self.a = name
        self.b = surname
        return    

    def concatenate( what ):
        what.a = what.a + " " + what.b
        return

class t3( t2 ):
    def concatenate( self ):
        return self.a

xx = t3( "Lebron", "James" )
xx.concatenate()
print( xx.concatenate(), xx.a )

有点困惑为什么这段代码会给出“Lebron Lebron”的输出,它如何知道从哪个类中使用哪个函数?谢谢!

标签: pythonclass

解决方案


因为你xx是 t3 的一个实例

当您在 python 上调用方法时,xx如果没有在父级中查找该方法是否在 t3 类中定义,则将查看该方法。

所以他将使用concatenatet3 的方法,因为它在 t3 中被覆盖。(https://docs.python.org/3/tutorial/classes.html

最良好的问候


推荐阅读