gpt4 book ai didi

python - Python中的继承基础

转载 作者:行者123 更新时间:2023-11-28 16:30:12 25 4
gpt4 key购买 nike

我想了解继承在 Python 中的工作原理。我正在查看一个简单的代码,有一件事让我感到困惑。代码如下:

class Person:

def __init__(self, first, last):
self.firstname = first
self.lastname = last

def Name(self):
return self.firstname + " " + self.lastname

class Employee(Person):

def __init__(self, first, last, staffnum):
Person.__init__(self,first, last)
self.staffnumber = staffnum

def GetEmployee(self):
return self.Name() + ", " + self.staffnumber

x = Person("Marge", "Simpson")
y = Employee("Homer", "Simpson","1007")
print(x.Name())
print(y.GetEmployee())

我的问题是,什么时候使用 Person.__init__() 来调用基类的构造函数,但是当我们再次调用基类的 Name() 方法时,我们没有使用“Person”,而是使用“ self ”。有人可以消除这种困惑,让我了解继承在 Python 中的工作原理吗?

最佳答案

Employee 类继承了 Person 基类的方法,包括 __init__ 方法。所以在类定义的顶部,它有 __init__Name 方法。

然后 Employee 类定义覆盖它继承的 __init__ 方法。为了调用 Person__init__ 方法,它必须按名称调用 Person.__init__ (实际上,它可以使用 super () 作为另一种选择)。

但是由于 Employee 没有覆盖继承的 Name 方法,它可以使用 self.Name() 来调用 名称 它在顶部继承的方法。

关于python - Python中的继承基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32727204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com