python函数参数问题

大家好我是python初学者,有个问题问问大家

class A:
    def prt(self):
        print("A")
class B(A):
    def prt(self):
        print("B")
class C(A):
    def prt(self):
        print("C")
def test(arg):
    arg.prt() #为什么test函数的参数arg能调用类中的prt方法?还是其中有什么隐藏操作?
a = A()
b = B()
c = C()
test(a)
test(b)
test(c)

最佳答案

a,b,c分别是类A,B,C的实例,这些类都有prt方法.
即test函数只不过是做的对应的 a.prt(),b.prt(),c.prt()方法调用.
arg 只是形参,其对应的实参a,b,c实例。问题的本质函数体接收实例参数,体内使用了实例参数prt方法
函数调用-->接收实例参数 --> 调用实例方法