我来自Java世界并阅读Bruce Eckels的Python 3模式,食谱和成语.
在阅读类时,接着说在Python中没有必要声明实例变量.你只需在构造函数中使用它们,然后繁荣,它们就在那里.
例如:
class Simple:
def __init__(self, s):
print("inside the simple constructor")
self.s = s
def show(self):
print(self.s)
def showMsg(self, msg):
print(msg + ':', self.show())
Run Code Online (Sandbox Code Playgroud)
如果这是真的,那么类的任何对象都Simple
可以只改变s
类外的变量值.
例如:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
Run Code Online (Sandbox Code Playgroud)
在Java中,我们学习了有关公共/私有/受保护变量的知识.这些关键字是有意义的,因为有时你想要类中的变量,类外没有人可以访问.
为什么Python中不需要这样做?
什么是有效的理由不使用关键字公共,私人,受保护的PHP?
故事:我已经开始了一个项目,其团队在他们的代码中积极使用访问修饰符(甚至明确地"公开"),并想说服我这样做.我总是觉得这种东西在像php这样的动态语言中完全没用,但我意识到我的直觉在技术讨论中几乎不是一个论点.因此,我正在寻找一个可靠,清晰的解释为什么访问修饰符在php中无用(甚至有害).
我知道已经存在一些类似的主题
但是我发布这个有几个原因
TIA