Python 中的私有方法

2024-04-06

我想在我的类中有一个函数,我将仅在此类的方法内部使用该函数。我不会在这些方法的实现之外调用它。在 C++ 中,我将使用在类的私有部分中声明的方法。在Python中实现这样的功能的最佳方法是什么?

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


Python 没有私有方法或属性的概念。这完全取决于您如何实施您的课程。但您可以使用伪私有变量(名称修改);前面的任何变量__(两个下划线)成为伪私有变量。

From 文档 http://docs.python.org/2/tutorial/classes.html#private-variables-and-class-local-references:

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

class A:
    def __private(self):
       pass

So __private现在实际上变成了_A__private.

静态方法的示例:

>>> class A:
...     @staticmethod         # Not required in Python 3.x
...     def __private():
...         print 'hello'
...
>>> A._A__private()
hello
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的私有方法 的相关文章

随机推荐