Python中的类继承,超级方法和重写方法

时间:2018-12-26 18:18:51

标签: python inheritance override self

考虑以下代码:

class A:
    def foo(self, a):
        return a
    def bar(self, a):
        print(foo(a))

class B(A):
   def foo(self, a):
       return a[0]

现在调用B.bar(a)的结果是print(a[0]),但是我想要的是print(a)。更直接地:我希望子类中的bar()调用使用foo中给出的A的定义,即使被覆盖。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我相信这就是您想要的:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="Styles/External/Bootstrap/bootstrap.min.css" media="all"/>
</head>
<body>
</body>
</html>

或者:

class A(object):
    def foo(self, a):
        return a
    def bar(self, a):
        print(A.foo(self,a))

class B(A):
   def foo(self, a):
       return a[0]