首页 新闻 会员 周边

关于python封装的问题,新手勿喷。。。

0
悬赏园豆:50 [已解决问题] 解决于 2017-07-12 18:16

我这里已经对__name进行封装了,为什么还是能调用封装的类属性?



书上说必须要加@property才能调用
是书上说错了吗?
村雨sup的主页 村雨sup | 初学一级 | 园豆:102
提问于:2017-07-10 17:00
< >
分享
最佳答案
1

这个是在类Person上的私有属性(因为self),在当前类中的任何函数都可以调用,如果在外部就不能调用了,例如 a.__name 就掉不出来

收获园豆:30
悟行 | 专家六级 |园豆:12559 | 2017-07-11 09:15
其他回答(2)
1

property是属性,你现在这是想弄个私有字段吧

收获园豆:10
北方姆Q | 园豆:1118 (小虾三级) | 2017-07-10 17:04
1

在类成员里面self.__name (假设name是个字符型变量)相当于 Java 中的 private String name;外部不能直接访问,需要通过接口访问(get/set放法)。

self._name 相当于Java 中的  protected String name;

self.name 相当于Java 中的  public String name;

收获园豆:10
rcddup | 园豆:222 (菜鸟二级) | 2017-07-12 17:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册