在Python中继承实际上做什么?

在Python中继承实际上做什么?,python,class,inheritance,Python,Class,Inheritance,我正在努力思考如何解释类继承。它实际上做什么?据我所知,它允许你们班: 使用继承的类函数/方法 使用继承的类局部变量(自变量) 这是双向的吗?如果某个东西是继承的,它也能读懂他的继承人吗 请尽可能用外行的语言回答。我不是以英语为母语的人,也从未受过正规的编程教育。请给我一个解释,而不是一个定义:继承并不是双向的。我的意思是: 如果您有一个名为父类的类和另一个名为子类的类,该类继承自父类作为子类(父类),然后Son可以使用父类中的所有方法,但是父类不能使用Son类中的方法 例子 类比 假设您有

我正在努力思考如何解释类继承。它实际上做什么?据我所知,它允许你们班:

  • 使用继承的类函数/方法
  • 使用继承的类局部变量(自变量)
这是双向的吗?如果某个东西是继承的,它也能读懂他的继承人吗


请尽可能用外行的语言回答。我不是以英语为母语的人,也从未受过正规的编程教育。请给我一个解释,而不是一个定义:

继承并不是双向的。我的意思是:

如果您有一个名为
父类
的类和另一个名为
子类
的类,该类继承自父类作为
子类(父类)
,然后
Son
可以使用
父类中的所有方法,但是
父类
不能使用
Son
类中的方法

例子 类比
假设您有一个名为
Animal
的类。在这个类中,您有一个名为
walk
的方法,该方法打印“Animal is walking”

现在您还有两个其他类:

1.
动物
继承的类
。您现在可以向它添加一个附加方法:
fly
。这将打印出一只鸟会飞

2.
猴子
,也是从
动物
继承的。现在,您可以添加一个附加方法:
gramb
。这将打印出猴子可以爬树

猴子和鸟都起源于动物,所以它们可以行走,它们有相同的功能/特征。但两者都有一个明显的特点:鸟可以飞,猴子可以爬树。所以这是有道理的,对吗

反之则是错误的,因为不是每种动物都能飞或爬树

编辑:我向您详细介绍了它的方法。但这也适用于变量。
Animal
类可以有一个
weight
字段。这两个继承类都可以访问:
Monkey
Bird


但是
Monkey
也可以有一个名为
max\u power
的字段,
Bird
可以有一个名为
max\u fly\u altime
的类变量。此字段对于这些特定类型的动物是唯一的,而不是通用的
动物
。也可能是鳄鱼。鳄鱼也不能为了拥有
max\u fly\u aighty
属性而飞行。

继承是一种
关系。每只
都是
动物
,但
动物
不会突然变成
@BenjaminGruenbaum,并用示例更新。
class A:
    def get_val(self):
        return 5

class B(A):
    def num(self):
        return 3

>>> a = A()
>>> b = B()
>>> a.get_val()
5
>>> b.num()
3
>>> b.get_val()
5
>>> a.num()
Attribute Error: A instance has no attribute 'num'
class Musician:
    def get_type(self):
        return 'musician'

class Pianist(Musician):
    def get_prof(self):
        return 'pianist'

>>> m = Musician()
>>> p = Pianist()
>>> m.get_type()
'musician'
>>> p.get_type()
'musician'
>>> p.get_prof()
'pianist'
>>> m.get_prof()
Attribute Error: Musician instance has no attribute 'get_prof'