如何在此处打印使用类Employee并且无法继承

时间:2017-09-17 14:58:11

标签: python inheritance

class Person:

    def _init_(self):
        self.A=1

class Employee(Person):

    def _init_(self):
        print(A)

object1=Person()
object2=Employee()

1 个答案:

答案 0 :(得分:2)

除了拼写错误的构造函数之外,该代码实际上存在多个问题......

  1. 您的_init_方法应该是__init__,否则它不是构造函数,只是恰好被称为_init_的方法,因此从不调用。
  2. 您必须调用超类的构造函数,否则将不会设置A,例如使用super().__init__()Person.__init__(self)
  3. 您必须使用self.A来读取实例的字段A;否则它将查找名为A
  4. 的局部变量

    这应该有效:

    class Person:
    
        def __init__(self):     # misspelled
            self.A = 1
    
    class Employee(Person):
    
        def __init__(self):     # misspelled
            super().__init__()  # call super constructor
            print(self.A)       # use self.A