当前位置: 首页 > 知识库问答 >
问题:

python类中私有变量的实际实现[重复]

万乐逸
2023-03-14
>>> class a():
      def __init__(self):
         self.public = 11
         self._priv = 12
>>> b = a()
>>> print b._priv
>>> 12

共有1个答案

黎承颜
2023-03-14

不,Python对象中没有私有变量或方法。“我们在这里都是同意的成年人”这句话通常用来解释他们被认为是不必要的。

单个下划线有时用于“私人”成员,只作为惯例购买;它没有任何功能。

前导双下划线会导致名称更改,但只是为了避免子类中的命名冲突。它不提供任何“私人成员安全”,因为你仍然可以得到他们。

 类似资料:
  • 问题内容: 我正在编写一个由两部分组成的小型Python模块: 一些定义公共接口的功能, 上述功能使用的实现类,但在模块外部没有意义。 首先,我决定通过在使用它的函数内部定义该实现类来“隐藏”该实现类,但这会影响可读性,并且如果多个函数重用同一类,则无法使用该实现类。 因此,除了注释和文档字符串外,是否存在将类标记为“私有”或“内部”的机制?我知道下划线机制,但是据我了解,它仅适用于变量,函数和方

  • 问题内容: 我看到很多执行“松散”私有变量/功能的python代码。他们将用一个下划线(例如_foo)声明函数/变量,然后仅在类/文件中使用它。他们不使用双下划线确实让我感到烦恼,因为最终,有人会从班级外部将此人称为“私人”成员。 是否有某种方法可以在单个下划线上强制执行隐私(不更改为双下划线)?谢谢! 问题答案: 否。这就是python的理念:不要让编译器/解析器强制执行隐私,因为 想要 访问私

  • 问题内容: 我来自Java世界,正在阅读Bruce Eckels的Python 3 ,和。 在阅读类时,它继续说在Python中不需要声明实例变量。你只需在构造函数中使用它们,然后它们就在那里。 因此,例如: 如果是这样,那么类的任何对象都Simple可以s在类外部更改变量的值。 例如: 在Java中,我们已经学会了有关公共/私有/保护变量的知识。这些关键字之所以有意义,是因为有时你需要一个类中的

  • 问题内容: 我有Python类,在运行时我只需要一个实例,因此每个类只具有一个属性就足够了,而每个实例只具有一次属性就足够了。如果将有多个实例(不会发生),则所有实例应具有相同的配置。我想知道以下哪种选择更好或更“惯用”的Python。 类变量: 实例变量: 问题答案: 我有Python类,在运行时我只需要一个实例,因此每个类只具有一个属性就足够了,而每个实例只具有一次属性就足够了。如果将有多个实

  • 本文向大家介绍Python程序中的私有变量,包括了Python程序中的私有变量的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将学习Python类中的私有变量。 Python没有称为私有变量的概念。但是,大多数Python开发人员都遵循命名约定来告诉变量不是公共变量,而是私有变量。 我们必须以双下划线开头一个变量名称,以将其表示为私有变量(不是真的)。示例:-一,二等..,。 正如我们已

  • 问题内容: 我在下面的示例中进行了尝试,并需要进行澄清。在这两种情况下,我都可以在测试函数中访问类变量和实例。 因此,假设是否必须定义一个需要在所有函数中使用的文字,这将是定义..self变量或class变量的更好方法? code.py 问题答案: 类变量对于所有实例使用的“常量”非常有用(从技术上讲,所有方法都是如此)。您可以使用模块全局变量,但是使用类变量会使它与类更明确地关联。 您实际上也经