Python中的私有方法 [英] Private methods in Python

查看:0
本文介绍了Python中的私有方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望在我的类中有一个函数,我将只在这个类的方法中使用它。我不会在这些方法的实现之外调用它。在C++中,我将使用在类的私有部分中声明的方法。在Python中实现此类函数的最佳方式是什么?

我正在考虑在这种情况下使用静态装饰符。我可以使用没有任何修饰符和self字的函数吗?

推荐答案

没有私有方法或属性的概念。这完全是关于如何实现您的类。但您可以使用伪私有变量(名称损坏);任何前缀__(两个下划线)的变量都将成为伪私有变量。

发件人the documentation

由于存在类私有成员的有效用例(即 避免名称与子类定义的名称的名称冲突), 是对这样一种机制的有限支持,这种机制被称为名字破坏。任何 __spam形式的标识符(至少有两个前导下划线,位于 大多数尾随下划线)在文本上被替换为 _classname__spam,其中类名称是去掉前导下划线的当前类名。这种损毁是不加考虑的 到标识符的语法位置,只要它出现 在类的定义中。

class A:
    def __private(self):
       pass

因此__private现在实际上变成了_A__private

静态方法示例:

>>> class A:
...     @staticmethod         # Not required in Python 3.x
...     def __private():
...         print 'hello'
...
>>> A._A__private()
hello

这篇关于Python中的私有方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆