我如何在这里打印使用类Employee并在继承时遇到问题

2024-04-27 03:02:54 发布

您现在位置:Python中文网/ 问答频道 /正文

class Person:

    def _init_(self):
        self.A=1

class Employee(Person):

    def _init_(self):
        print(A)

object1=Person()
object2=Employee()

Tags: selfinitdefemployeeclasspersonprintobject1
1条回答
网友
1楼 · 发布于 2024-04-27 03:02:54

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

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

这应该起作用:

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

相关问题 更多 >