在Python中公开成员还是将其设为私有?
在Python类中,关于公开和私有成员的写法有没有什么通用的规则呢?我知道这要看具体情况,但或许有一些简单的原则可以参考。
私有成员:
class Node:
def __init__(self):
self.__children = []
def add_children(self, *args):
self.__children += args
node = Node()
node.add_children("one", "two")
公共成员:
class Node2:
def __init__(self):
self.children = []
node2 = Node2()
node2.children += "one", "two"
如果没有特别好的理由把children
设为私有的话,你会继续使用add_children
这个方法吗?
7 个回答
3
我认为在Python中,除非有特别的理由,否则应该让成员公开。因为Python的代码通常不想对用户做过多的限制。这就是为什么,比如说,真正私有的成员是不存在的。
5
在编程中,表示“私有”的前缀是一个下划线。__
这个符号是用来改变名字的,目的是为了避免一些问题,比如在使用多重继承的时候。个人来说,我从来没有用过这个。
无论如何,这些成员还是可以被公开访问的;这只是一种约定俗成的写法。
1
这要看情况。
说真的。如果这个Node
需要在添加子节点时做些什么,那你就得让第一个节点来处理这个变化,执行需要的操作。如果只是一个你不需要担心变化的列表,那就选择后者吧。