【发布时间】:2019-12-22 08:47:25
【问题描述】:
我正在阅读 python 文档:https://docs.python.org/3/tutorial/classes.html
我无法理解以下内容:
因为方法在调用其他方法时没有特权 同一个对象,调用另一个方法的基类的方法 在同一个基类中定义的最终可能会调用一个 覆盖它的派生类。 (对于 C++ 程序员:所有方法都在 Python 实际上是虚拟的。)
假设基类 X 有方法 A,该方法在同一个基类中调用方法 B。
现在派生类 Y,比如说有方法 B,并且用户调用 Y.A()。那么,X 类的方法 A 会被调用,它会调用 Y 类的方法 B?这是作者想说的吗?
【问题讨论】:
-
是的(
Y().A()会打电话给Y.B) -
并且可以使用名称修饰来防止这种情况发生吗?
标签: python python-3.x