在Python中公开成员或使其私有化?

2024-03-28 16:30:05 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python类中公开成员是否有一个通用的约定?我知道这是一个“视情况而定”的情况,但也许有一个经验法则。在

私人会员:

class Node:

  def __init__(self):
    self.__children = []

  def add_children(self, *args):
    self.__children += args

node = Node()
node.add_children("one", "two")

公众成员:

^{pr2}$

如果没有好的理由使children私有化,您会继续使用add_children方法吗?在


Tags: selfaddnodeinitdef情况args成员
3条回答

我认为让成员暴露在外更像Python,除非您有特定的理由不这样做,因为Python代码通常不打算对用户进行任何必要的限制。这就是为什么,例如,没有真正的私人会员。在

“private”的前缀是一个下划线。 __用于损坏名称并避免一些问题,例如在使用多重继承时。 我从来没用过。在

无论如何,这些成员仍然可以公开访问;这只是一个约定。在

“这要看情况。”

说真的。如果添加子元素时Node需要执行某些操作,则需要第一个捕捉到更改并执行需要执行的操作。如果这只是一个你不需要担心更改的列表,那么就选择后者。在

相关问题 更多 >