如果我有以下两个类:
class Test()
def __init__(self):
self._path={} # key= source node, value = list of neighbors
class PrintNodes()
def printing(self)
Test()._path[key] # Is it possible?
如果我想在self._path={}
类的PrintNodes()
中循环键,我是否需要在Test()
中以与Java或C ++类似的方式创建一个getter方法?如果不是,有人可以建议我这样做吗?
非常感谢你。
答案 0 :(得分:0)
如果希望PrintNodes能够访问Test实例的属性,则需要将Test实例传递给PrintNodes实例。
例如:
class Test()
def __init__(self):
self._path={}
Class PrintNodes()
def printing(self, test) # pass in the instance here
print(test._path[key])
Python没有强大的访问保护机制,比如C ++或Java,因此将测试的_path
属性标记为私有没有任何好处,除非它具有与之相关的特性。 #39;对其他班级来说很危险。所以你的代码看起来像这样:
class Test()
def __init__(self):
self.path={} # not private
Class PrintNodes()
def printing(self, test)
print(test.path[key])
如果依赖路径是危险的 - 例如,您可能会在将来将其从dict
更改为list
- 然后使用前导下划线将其标记为私有并禁止访问它在其他课程中。