在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'