Python 类继承重写基类方法的问题,请进来看看

2018-03-12 11:38:49 +08:00
 sr0miao
class A(object):
  def a(self):
    xx

  def b(self):
    a()
    xx

然后 B 继承 A

class B(A):
  def a(self) # 重写 A 类里的 a 函数,意思是这样的  

最后以 B 的实例调用 b(),但 b()里调用的是 B 里重写的 a 方法

请问这该如何实现么

2758 次点击
所在节点    Python
10 条回复
zbl430
2018-03-12 12:05:33 +08:00
```
super(B, self)
```
yianing
2018-03-12 12:18:06 +08:00
super
vJianZhen
2018-03-12 12:26:32 +08:00
没看懂问题描述,实现啥?
laike9m
2018-03-12 12:29:32 +08:00
并不需要什么特殊实现啊
```
>>> class A:
... def a(self): print('A.a')
... def b(self): self.a()

>>> class B(A):
... def a(self): print('B.a')

>>> B().a()
B.a
```
rabbbit
2018-03-12 12:30:26 +08:00
默认就调用 b 的啊?

tempdban
2018-03-12 12:30:39 +08:00
def b(self):
self.a()
Yourshell
2018-03-12 12:43:05 +08:00
统一调用方法实现一下__call__?
cominghome
2018-03-12 12:51:51 +08:00
楼上有人贴实验结果了啊,按理说会调用已经重写的方法啊
sr0miao
2018-03-12 13:12:37 +08:00
额,弄清楚了,程序连得是远程服务器,他那边的问题,我还以为是我重写的代码不对。谢谢大家。
spark20
2018-03-12 18:07:46 +08:00
基类调用 a()少打了个 self

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/437195

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX