首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python在类中有“私有”变量吗?

Python在类中有“私有”变量吗?

提问于 2017-12-22 11:12:01
回答 2关注 0查看 469

我来自Java世界,阅读Bruce Eckels的Python 3 Patterns,Recipes和Idioms。

在阅读类时,它继续说在Python中不需要声明实例变量。你只是在建设者中使用它们,繁荣,他们在那里。

举个例子:

代码语言:txt
复制
class Simple:
代码语言:txt
复制
    def __init__(self1, str):
代码语言:txt
复制
        print("inside the simple constructor")
代码语言:txt
复制
        self1.s = st
代码语言:txt
复制
    def show(self1):
代码语言:txt
复制
        print(self1.s)
代码语言:txt
复制
    def showMsg (self, msg):
代码语言:txt
复制
        print (msg + ':', self.show())

如果这是真的,那么类的任何对象都Simple可以改变s类之外的变量的值。

例如:

代码语言:txt
复制
if __name__ == "__main__":
代码语言:txt
复制
    x = Simple("constructor argument")
代码语言:txt
复制
    x.s = "test15" # this changes the value
代码语言:txt
复制
    x.show()
代码语言:txt
复制
    x.showMsg("A message")

在Java中,我们已经被教授关于公共/私有/受保护的变量。这些关键字是有意义的,因为有时候你想要一个班级以外的班级无法访问的变量。

为什么在Python中不需要?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档