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)
阅读 2.5k
2 个回答

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

python 中除了两个下划线开头的方法(如 __private_method)都是公有的,也就是可以用 object.public_method 的方式来调用,这也是方法被制造出来的目的啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题