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

时间:2017-04-06 21:17:45

标签: python python-3.x class methods

我已经尝试用python 3学习编程几个月了,而且我已经被课程困住了。特别是私人和公共方法。

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

我对Stackoverflow进行了很多研究,但没有找到任何可以回答我问题的内容。所以,如果这是重复,我提前道歉。

2 个答案:

答案 0 :(得分:4)

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

在现实世界中,类的实现要求您专门创建许多方法以使该类工作,并且不是此公开API的一部分。也许您需要一种名为" honk"的方法,但您不希望它在除您自己的代码之外的任何地方使用。

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

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

为什么你想要一些私人物品?一个原因是代码发生了变化。您添加参数,删除参数,更改算法。公共界面在创建后通常不会发生太大变化。您可以添加它,但通常不会做出重大更改。

私人方法,本质上是"放手"对于外部世界,可以自由更改,而不必担心代码的其他部分可能会调用这些函数。

答案 1 :(得分:0)

私有方法仅供您自己的类使用,不能在其他任何地方调用。它服务的目的是encapsulation