私信  •  关注

julemand101 Simon Stanford

julemand101 Simon Stanford 最近创建的主题
julemand101 Simon Stanford 最近回复了
3 年前
回复了 julemand101 Simon Stanford 创建的主题 » 为什么在下面的Python代码中可以打印私有成员_分子和_分母?[重复]

这是文化。在Python中,您不会写入其他类的实例或类变量。在Java中,如果您 真正地 想要——毕竟,您可以随时编辑类本身的源代码,以达到相同的效果。Python放弃了安全性的伪装,鼓励程序员负责任。实际上,这非常有效。

如果出于某种原因想要模拟私有变量,可以始终使用 __ 前缀来自 PEP 8 .Python会破坏变量的名称,比如 __foo 这样它们就不容易被包含它们的类之外的代码看到(尽管 可以 如果你有足够的决心,就像你自己一样,那就绕开它 可以 如果你在做Java的保护工作,那就绕开它)。

按照同样的惯例 _ 前缀的意思是 即使你在技术上没有被阻止,也要远离 .你不能玩弄另一个类的变量 __福 _bar .