python私有和公共方法,它们分别用于什么目的?

Ste*_*e T -4 python methods class python-3.x

我几个月来一直在尝试学习使用python 3进行编程,但我陷入了课堂困境。特别是私有和公共方法。

我不明白什么是专用方法。我知道公共方法可以由用户/程序直接访问。但是我无法理解私有方法,它们的用途以及它们为什么存在。

我对Stackoverflow进行了大量研究,但没有找到任何答案。因此,如果这是重复的事,我事先表示歉意。

Bry*_*ley 5

创建对象时,您正在创建一个API。您正在提供外界可以与之交互的对象属性和方法。car.drive()horse.color等等。

在现实世界中,类的实现要求您创建许多专门用于使类工作的方法,并且不属于此公开的API。也许您需要一个名为“ honk”的方法,但是除了您自己的代码之外,您不希望在其他任何地方使用它。

这些内部方法被我们认为是“私有的”。一些编程语言具有用于公开或私有方法的正式构造。Python没有。但是,按照约定,以下划线开头的方法和属性将被视为私有。

几乎每个有经验的python程序员在看到带有下划线的方法时都知道,不要从类定义之外的任何地方调用它。他们可以,但通常不会。

你为什么要把某些东西保密?原因之一是代码更改。您添加参数,删除参数,更改算法。一旦创建,公共接口通常不会发生太大变化。您可以添加它,但是通常不会进行大的更改。

从本质上讲,“私有”方法可以“改变”为外界,因此可以自由更改它们,而不必担心代码的其他部分会调用那些函数。