多重继承的时候, super 该怎么取参数才能继承到其他父类的方法?

2015-04-19 19:12:31 +08:00
 napretep
--------------------------
'''继承方法测试'''
class A(object):
□□□□C = [3, 4]

□□□□def __init__(self):
□□□□□□□□self.__A = [1, 2]

□□□□@property
□□□□def get_A(self):
□□□□□□□□return self.__A


class S(object):
□□□□W = [5, 6]

□□□□def __init__(self):
□□□□□□□□self.__S = [7, 8]

空格@property
□□□□def get_A(self):
□□□□□□□□return self.__S


class B(A, S):
□□□□@property
□□□□def get_B(self):
□□□□□□□□return super(B, self).get_A[0]
□□□□pass


D = B()
print(D.C)
print(D.W)
print(D.get_B)
print(D.get_A)
----------------------------------------
请问这条语句该怎么处理才能得到S类的方法?
super(B, self).get_A[0]

我想让print(D.get_B)执行时得到7的结果
3058 次点击
所在节点    Python
10 条回复
p1n3
2015-04-19 21:33:44 +08:00
这样定义就可以。。
class B(S, A):
wohenyingyu01
2015-04-19 21:37:09 +08:00
弱弱的问一下,你不会是上海仁泰酒店的那个人吧?
napretep
2015-04-19 22:50:20 +08:00
wohenyingyu01
2015-04-19 22:53:53 +08:00
@napretep 哦哦,不好意思,你头像和他一样
laike9m
2015-04-19 23:19:57 +08:00
```
>>> class A:
pass

>>> class S:
pass

>>> class B(A, S):
def __init__(self):
print(self.__class__.__mro__)


>>> b = B()
(<class '__main__.B'>, <class '__main__.A'>, <class '__main__.S'>, <class 'object'>)
```

这个应该很明了吧
laike9m
2015-04-19 23:20:41 +08:00
靠,v2居然没有代码高亮么。。。
bombless
2015-04-20 09:50:07 +08:00
谁告诉你v2是讨论代码的,233(逃
laike9m
2015-04-20 20:21:49 +08:00
@bombless 我觉得代码高亮是个偏技术论坛的基本功能吧。。。就算不支持 markdown 手工<pre></pre>也无所谓啊。。
bombless
2015-04-20 21:03:58 +08:00
@laike9m 你需要QQ空间……据说对贴代码的支持很好(逃
laike9m
2015-04-20 22:17:27 +08:00
@bombless 2333

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

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

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

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

© 2021 V2EX