python中函数名可以相同吗_在python中具有相同名称的函数的子类

I have two classes in python, and a third which inherits from the first two:

class A():

def __init__(var1, var2):

self.var1 = var1

self.var2 = var2

def MyFunc():

#do stuff

class B():

def __init__(var1):

self.var1 = var1

def MyFunc():

#do other stuff

class C(A,B):

def __init__(self, var1, var2, var3)

A.__init__(self,var1, var2)

B.__init__(self, var3)

As you might notice both classes have different functions bearing the same name. Doing the following:

>>> classC = C(1,2,3)

>>> classC.MyFunc()

Appears to work but I would like to be sure of which MyFunc function I am calling. How do I control which function from my subclasses is being called?

解决方案

Attributes not defined by C are searched for using C's method resolution order:

>>> C.__mro__

(, , , )

Since C.MyFunc isn't defined, classC.MyFunc resolves to A.MyFunc. B.MyFunc is never called, unless A.MyFunc were to call it explicitly for some reason.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值