Python类继承

Python Class inheritence

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
subclass __init__ overrides superclass’s

1
2
3
4
5
6
7
8
9
10
11
12
class A():
    z = 'z it is'
    def __init__(self):
        self.a = 'a it is'

class B(A):
    def __init__(self):
        self.b = 'b it is'

b = B()
print b.z # z it is
print b.a # AttributeError: B instance has no attribute 'a'

b是从A类继承的b类的实例。这不意味着我可以访问父类的属性吗?


您需要显式地调用超类__init__。它不是自动调用的。


B类中的__init__函数应该这样写:

1
2
3
4
class B(A):
    def __init__(self):
        A.__init__(self)
        self.b ="b it is"